PowerShell调用WinSCP批处理出现未知命令与/log不识别错误如何解决
错误原因及解决方案
第一个报错:'/log' 不是内部或外部命令
原因:批处理文件中winscp.com的启动命令被拆分为两行,批处理解释器会将第二行的/log=...识别为独立的命令执行,而非winscp.com的参数,该问题和环境变量无关。
解决方案:要么将/log参数和winscp.com命令放在同一行,要么在第一行末尾添加批处理续行符^(注意^后面不能有任何空格)。
修正后的批处理文件内容:
winscp.com /script=winscp_commands_ar_history.txt ^ /log=C:/Users/REDACTED/Desktop/AR_History_Report/winscp_log_ar_history.txt
也可以直接合并为一行:
winscp.com /script=winscp_commands_ar_history.txt /log=C:/Users/REDACTED/Desktop/AR_History_Report/winscp_log_ar_history.txt
第二个报错:Unknown command '-hostkey=...'
原因:WinSCP脚本中,open命令的-hostkey参数被拆成了单独一行,WinSCP会将该行识别为独立的未知命令,而非open命令的参数。除此之外,你的synchronize remote命令中远程路径包含空格,未加引号包裹也会导致后续执行出错。
解决方案:将-hostkey参数和open命令放在同一行,同时给包含空格的路径加双引号包裹。
修正后的WinSCP命令内容:
option batch abort option confirm off open sftp://REDACTED:REDACTED@sftp.REDACTED.com -hostkey="ssh-rsa 2048 cc:ea:2e:03:96:ca:e7:c0:59:74:13:a8:XX:XX:XX:XX" synchronize remote "/export/GroupAccess/REDACTED/Cognos Reporting/CogTest" "C:/Users/REDACTED/Desktop/AR_History_Report" exit
内容的提问来源于stack exchange,提问作者emalcolmb
相关产品推荐
相关产品推荐

