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 机器?