PuTTY -m 命令选项在 Windows 7 上因“无法打开 ... 文件”而失败

Posted

技术标签:

【中文标题】PuTTY -m 命令选项在 Windows 7 上因“无法打开 ... 文件”而失败【英文标题】:PuTTY -m command option failing with "unable to open ... file" on Windows 7 【发布时间】:2019-08-04 02:15:26 【问题描述】:

我正在尝试使用批处理文件进行自动 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 代替了 putty。

发生了什么?

【问题讨论】:

尝试提供文件的完整路径,或将/D 选项添加到start 以提供正确的起始/工作目录... 【参考方案1】:

你需要使用 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 文件拥有所有权限【参考方案2】:

您的问题不太可能与 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"  ...

【讨论】:

我已经尝试了这些解决方案,但同样的错误发生了。谢谢 您是否使用实际路径代替C:\path\to?用您尝试的详细信息修改您的问题。 如果你这样做cd /d C:\path\to -- dir --- type commands_to_execute.txt -- start "title" "C:\Program Files\PuTTY\putty.exe" "server_name@server_IP" -pw "password" -m "commands_to_execute.txt" 怎么办? -- 你在dir 输出中看到commands_to_execute.txt 了吗?你看到commands_to_execute.txt的内容了吗? --commands_to_execute.txt在哪个文件夹下?

以上是关于PuTTY -m 命令选项在 Windows 7 上因“无法打开 ... 文件”而失败的主要内容,如果未能解决你的问题,请参考以下文章

Windows系统使用putty远程连接DigitalOcean创建的Linux系统(CentOS6.7为例)

如何通过 PuTTy 使用命令行将文件从 Windows 机器上传到 Linux 机器?

linux putty Xming中的问题

Ubuntu安装SSH + Windows上配置Putty

使用Putty实现windows向阿里云的Linux云服务器上传文件

在 PuTTY 命令行上指定私钥