Batch file PuTTY-m命令选项失败,带“0”;无法打开。。。文件";在Windows7上

Batch file PuTTY-m命令选项失败,带“0”;无法打开。。。文件";在Windows7上,batch-file,windows-7,putty,Batch File,Windows 7,Putty,我正在尝试使用批处理文件进行自动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” 我已尝试将所有路径更

我正在尝试使用批处理文件进行自动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
,在实际目录中工作,并将路径添加到以下环境变量:

高级系统设置>环境变量

我也用了链环而不是油灰


发生了什么?

您的问题不太可能与Windows 7和Windows 10有关

在Windows 7上执行批处理文件的工作目录很可能未设置为存储
commands\u 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"  ...
    

您需要使用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

这两行中的任何一行都可以工作。

当使用
CD
命令时,您应该真正使用它的
/D
选项,除非在使用时已知“当前驱动器”是相同的。虽然您可能正确地使用了Plink(尽管我们并不真正知道OP在做什么),但您根本没有解决OP的问题。您的代码将遇到与OP相同的问题。是的,问题仍然存在。谢谢你试过使用目录的完整位置吗?有什么特权可以使用.bat文件?是的,我试过了。.bat和.txt文件拥有所有权限。请尝试提供文件的完整路径,或将
/D
选项添加到,以提供正确的启动/工作目录…我尝试了这些解决方案,但出现了相同的错误。谢谢您是否使用实际路径代替
C:\path\to
?用您的尝试的详细信息修改您的问题。如果您执行
cd/d C:\path\to
--
dir
--
键入命令\u to \u execute.txt
--
启动“title”C:\Program Files\PuTTY\PuTTY.exe“服务器”,该怎么办_name@server_IP“-pw”password“-m”命令\u to \u execute.txt”
?——在
dir
输出中是否看到
命令\u to_execute.txt
?您看到
命令\u to \u execute.txt
的内容了吗在哪个文件夹中有要执行的
命令.txt