WinSCP会话未以CLOSE命令结束

时间:2018-08-23 23:49:42

标签: session winscp

我当前正在编写一个脚本,该脚本调用WinSCP,连接SFTP会话,将一组文件从本地服务器传输到远程服务器,关闭连接,然后退出。 我看到多个WinSCP.exe进程在每次运行后仍在运行。我的语法有什么问题?

"C:\Program Files (x86)\WinSCP\WinSCP.com" /log="C:\imports\WinSCP.log" /ini=nul /command "open sftp://UN@sftp1.vendor.com/writable/ -hostkey=""ssh-......"" -privatekey=""C:\mykeys\UN_private.ppk"""  "put -latest C:\import\customers\*.csv /imports/*.csv" "close" "exit"

2 个答案:

答案 0 :(得分:0)

WinSCP.com的单次运行只运行WinSCP.exe的一个实例,再也没有运行。

WinSCP.com也与WinSCP.exe在同一Windows作业中运行。因此,如果WinsCP.com终止,Windows将确保WinSCP.exe也终止,无论您编写脚本有多错误,也可能是WinSCP本身出现了什么错误,阻止了明确的WinSCP.exe终止。

因此,很可能还有其他原因导致WinSCP.exe进程被遗忘了,而不是脚本。或者您对问题的描述不正确。

答案 1 :(得分:0)

我的代码使用^分隔命令。 从代码中删除了"close" ^。 将“退出”移到最后一个命令旁边。由于某种原因,我不喜欢用^格式化批处理文件。

这是旧代码

"put -latest C:\import\customers\*.csv /imports/*.csv" ^
"close" ^
 "exit"

和工作代码-

"put -latest C:\import\customers\*.csv /imports/*.csv" "exit"