通过Windows Bat脚本调用PuTTY执行Linux Sh脚本报错求助
解决PuTTY执行远程脚本的参数错误问题
你的问题出在PuTTY的参数用法上,putty.exe(GUI版本)不支持直接在命令行末尾追加远程执行的脚本命令,这会导致参数解析错误,进而触发连接失败提示。
以下是两种可行的解决方法:
方法1:使用PuTTY命令行工具plink.exe(推荐)
plink.exe是PuTTY配套的命令行SSH工具,更适合脚本场景,直接支持在命令行末尾指定远程执行的命令:
"C:\programfiles\plink.exe" -ssh username@myhostname -pw password "./script.sh"
如果执行后需要保持终端会话打开,可以添加-t参数强制分配终端:
"C:\programfiles\plink.exe" -ssh username@myhostname -pw password -t "./script.sh; bash"
方法2:使用putty.exe配合命令文件
如果必须使用带GUI的putty.exe,需要通过-m参数指定一个本地文本文件,文件内写入要执行的远程命令:
- 在本地创建一个文本文件(比如
run_script.txt),内容仅一行:./script.sh - 修改Bat脚本为:
注意替换"C:\programfiles\putty.exe" -ssh username@myhostname -pw password -m "C:\path\to\run_script.txt"C:\path\to\run_script.txt为你实际的文件路径。
额外提醒:确保你的script.sh脚本开头有正确的shebang(比如#!/bin/bash),且确实位于远程用户的主目录下。
内容的提问来源于stack exchange,提问作者kaneda
相关产品推荐
相关产品推荐

