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

我写了一个像这样的batch file

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启动,命令执行(希望,不知道),它退出。

如何保持这个窗口打开?

我已经search了相同的,但没有坚实的帮助。 我读过堆栈溢出本身,我们需要在txt文件中定义的东西,但是什么,最重要的是如何?

Solutions Collecting From Web of "如何防止PuTTY shell在执行Windows批处理命令后自动退出?"

一旦命令完成,SSH会话关闭(并且PuTTY与它一起)。 通常情况下,“命令”是shell。 因为你已经重写了这个默认的“命令”,但是你仍然想运行这个shell,你必须自己明确地执行这个shell:

 avahi-daemon ... ; /bin/bash 

另外,由于使用-m开关意味着一个非交互式终端,您可能需要使用-t开关强制交互式终端。


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

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

 avahi-daemon ... ; read 

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

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

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

它为我工作。 请注意,您必须按照上述步骤进行操作。 这样您可以保持会话活动,并可以手动执行进一步的命令。