通过Spawn脚本执行SSH删除远程Windows文件遇语法错误求助
解决建议
修正命令参数:Windows CMD的
del命令强制删除用/f,不是Linux的-f,你用的-f会被CMD当成文件名的一部分,直接触发语法错误。推荐命令写法(二选一):
用单引号包裹远程命令,避免Bash解析内部的反斜杠和引号:
ssh user@host 'del /f "F:\some\path\in\remote\1.computer\1.filename.txt"'单引号会让Bash把整个命令原封不动传给远程CMD,同时给Windows路径加双引号,确保特殊字符(比如
.)被正确识别。保留双引号,对反斜杠和内部引号二次转义:
ssh user@host "del /f \"F:\\\\some\\\\path\\\\in\\\\remote\\\\1.computer\\\\1.filename.txt\""Bash双引号里
\\会变成单个\,所以要写\\\\才能让CMD拿到正确的路径分隔符;\"用来转义内部双引号,让CMD识别路径的包裹。
额外检查步骤:
- 先在远程Windows的CMD里直接跑
del /f "F:\some\path\in\remote\1.computer\1.filename.txt",确认路径存在且有权限删除,排除基础问题。 - 要是路径里有空格,必须用双引号包裹,否则CMD会拆分路径导致错误。
- 先在远程Windows的CMD里直接跑
内容的提问来源于stack exchange,提问作者Mauricio Suarez
相关产品推荐
相关产品推荐

