You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WinSCP脚本执行后无法自动关闭会话,需手动输入exit求助

WinSCP脚本无法自动关闭会话的解决方法

你的WinSCP脚本能够正常完成文件复制操作,但执行后SFTP会话无法自动关闭,必须手动输入exit才能结束进程,问题出在命令续行的语法错误上。

错误原因

get命令行的末尾没有添加续行符^,导致后续的"exit /b"没有被作为WinSCP的命令参数传递,WinSCP执行完get命令后进入了交互模式,因此需要手动触发退出。另外,WinSCP的退出命令是exit,不需要加批处理的/b参数。

修正后的脚本

@echo off

"C:\Program Files (x86)\WinSCP\WinSCP.com" ^
  /log="C:\WinSCP.log" /ini=nul ^
  /command ^
    "open sftp://alma_972icc_lev%%40customers.eu@custdata-dc03.hosted.exlibrisgroup.com:10022/ -hostkey=""ssh-rsa 4096 upqTBzuxy+fGrA4+dFQaWXmIq7/E1CwyAjqRSwq9eQo"" -privatekey=""C:\FTP_KEY\id_rsa.ppk"" -rawsettings AgentFwd=1 ProxyPort=1" ^
    "get -delete /production/Alma/* C:\exlibris\" ^
    "exit"

set WINSCP_RESULT=%ERRORLEVEL%
if %WINSCP_RESULT% equ 0 (
  echo Success
) else (
  echo Error
)

exit /b %WINSCP_RESULT%

关键修正点

  • 在get命令行末尾添加续行符^,确保exit命令被纳入WinSCP的/command参数序列中
  • 将"exit /b"改为"exit",/b是Windows批处理的退出参数,不适用于WinSCP的命令

内容的提问来源于stack exchange,提问作者Renat Boizov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 23:09:32