如何防止PuTTY shell在Windows中从批处理文件执行命令后自动退出?

时间:2014-11-22 11:31:16

标签: windows shell batch-file cmd putty

我写了一个这样的批处理文件:

Start putty.exe -ssh 172.17.0.52 -l root -m dummy.txt

然后在dummy.text我写了这个命令:

avahi-daemon --no-drop-root -D
export XVHMI_USERCONFIG_PATH=/home/UserProfileConfig
export XDG_RUNTIME_DIR=/tmp
cd /opt/bosch/airis/bin

当我运行.bat文件时,PuTTY启动,命令执行(希望,不确定)并退出。

如何保持窗口打开?

我已经谷歌搜索相同,但没有坚实的帮助。我读到堆栈溢出本身,我们需要在txt文件中定义一些东西,但是最重要的是什么?

2 个答案:

答案 0 :(得分:14)

一旦命令完成,SSH会话就会关闭(和PuTTY一起使用)。通常“命令”是shell。由于你已经覆盖了这个默认的“命令”,但是你想要运行shell,你必须自己明确地执行shell:

avahi-daemon ... ; /bin/bash

同样,由于-m开关的使用意味着非交互式终端,您可能希望使用-t开关强制使用交互式终端。


虽然,我不确定你是否想要执行shell,或者你只是想看看你的命令输出。如果是后者,您是否考虑使用plink?它是PuTTY软件包的控制台终端客户端。作为控制台应用程序,它继承了父批处理文件的控制台,如果需要,您可以使用pause命令暂停批处理控制台的关闭。

另一个选项(PuTTY和plink)都是在远端暂停。例如。使用read命令。

avahi-daemon ... ; read

答案 1 :(得分:5)

正如马丁所建议我尝试了这一步:

  1. putty.exe -ssh 172.17.0.52 -l root -m dummy.txt -t

  2. 在dummy.txt命令末尾添加/ bin / bash

  3. 它对我有用。请注意,您必须遵循上述两个步骤。 这样,您可以使会话保持活动状态,并可以手动执行更多命令。