Batch file 使用多个选项卡启动MobaXterm的批处理脚本
我是批处理的新手,所以我非常感谢您的帮助 目标是在同一个窗口(不同的选项卡)上启动带有X个SSH会话的MobaXterm 这是代码中的相关部分:Batch file 使用多个选项卡启动MobaXterm的批处理脚本,batch-file,ssh,Batch File,Ssh,我是批处理的新手,所以我非常感谢您的帮助 目标是在同一个窗口(不同的选项卡)上启动带有X个SSH会话的MobaXterm 这是代码中的相关部分: set n=0 for %%a in (%name%) do ( set n+=1 set "name[!n!]=%%~a" start MobaXterm_Professional_9.1.exe -newtab -exec "waitforX; ssh -i %key% %user%@%%~a" ECHO name
set n=0
for %%a in (%name%) do (
set n+=1
set "name[!n!]=%%~a"
start MobaXterm_Professional_9.1.exe -newtab -exec "waitforX; ssh -i %key% %user%@%%~a"
ECHO name is %%~a
timeout /t 5
)
这样,我就可以打开第一个ssh会话,但对于其余会话,我在每个会话中都会收到一个错误,即“/bin/bash:-c:option需要一个参数”如果删除“开始”和“超时”,则仅打开第一个会话,因为ssh不在后台运行。不应同时使用newtab和exec命令行。所以语法是
start MobaXterm\u Professional\u 9.1.exe-newtab“waitforX;ssh-i%key%%user%@%%~a”
有效。Trystart”“MobaXterm…
第一个会话很好,但对于其他会话,我会得到相同的错误/bin/bash:-c:选项需要一个参数这听起来更像是知道如何使用软件的问题,这意味着这不是编码问题,也不属于堆栈溢出。请尝试使用start
命令执行echo
。我们对name
的内容没有任何线索,name
似乎在start
操作中没有任何作用。您的代码应该获取name
的元素,并将它们记录在name[1]…name[n]
中,无需识别。需要更多信息…@Magoo'name'是我试图通过ssh连接到的ip地址/DNS,其值由%%a接收。所以我认为%%~a具有相同的name[n]值