批处理文件调用WinSCP时出现‘unknown command ^’错误的解决办法
解决WinSCP批处理报错'unknown command ^'的方法
你的报错是因为脚本最后一行"exit"末尾多余的续行符^导致的——WinSCP会把这个^当作一条未知命令解析,从而抛出错误。
修正步骤:
- 直接移除
"exit"行末尾的^,续行符仅用于需要换行的命令之间,最后一条命令不需要添加续行符 - 确认路径转义无误:原脚本中
-hostkey=""*""和-privatekey=""C:\Location\To\Private.ppk"""的写法正确,通过双引号嵌套实现向WinSCP传递带双引号的参数
修正后的完整代码:
@echo off "C:\Program Files (x86)\WinSCP\WinSCP.com" ^ /log="C:\temp\WinSCP.log" /ini=nul ^ /command ^ "open sftp://un:pw@sftp.site.com/ -hostkey=""*"" -privatekey=""C:\Location\To\Private.ppk""" ^ "cd /" ^ "lcd C:\temp\LatestFile" ^ "get -latest Filename*" ^ "exit"
如果问题仍存在,可查看C:\temp\WinSCP.log日志文件,里面会记录命令执行的详细过程,便于排查其他潜在问题。
内容的提问来源于stack exchange,提问作者Dustin Cook
相关产品推荐
相关产品推荐

