我正在尝试使用批处理文件进行自动PuTTY登录。我有这个:
start "title" "C:\Program Files\PuTTY\putty.exe" "server_name@server_IP" -pw "password" -m "commands_to_execute.txt"
一切都可以在我的Windows 10计算机上运行,但是在Windows 7中,命令选项-m
不起作用。错误消息是:
无法打开命令文件:“ commands_to_execute.txt”
我尝试将所有路径更改为“ C:\ Program Files \ PuTTY”,设置工作目录/D
,在实际目录中工作,并且还将路径添加到以下环境变量中:
高级系统设置>环境变量
我也用plink代替了腻子。
发生了什么事?
答案 0 :(得分:1)
您的问题不太可能与Windows 7和Windows 10有关。
在Windows 7上执行批处理文件的工作目录很可能未设置为存储commands_to_execute.txt
文件的文件夹。
可能的解决方案是:
设置工作目录的方式与在Windows 10上设置工作目录的方式相同
使用脚本文件的完整路径:
-m "C:\path\to\commands_to_execute.txt"
使用以下命令显式设置PuTTY的工作目录:
start "title" /D "C:\path\to" "C:\Program Files\PuTTY\putty.exe" ...
或者,如果脚本文件与批处理文件位于同一文件夹中,则可以使用:
start "title" /D "%~dp0" "C:\Program Files\PuTTY\putty.exe" ...
答案 1 :(得分:0)
您需要为此使用plink.exe而不是putty.exe,只需替换:
start "title" "C:\Program Files\PuTTY\plink.exe" "server_name@server_IP" -pw "password" -m "commands_to_execute.txt"
或使其更简单:
cd C:\Program Files\PuTTY\
plink.exe -ssh pi@192.168.1.166 -P 22 -pw P@SSWRD ~/script.sh
plink.exe -ssh pi@192.168.1.166 -P 22 -pw P@SSWRD -m commands.txt
pause
这两行中的任何一条都有效。