我正在尝试编写一个自动脚本,以使用 WinSCP 将文件上传到 sftp。 下面的初始脚本工作没有错误
C:Usersanh le>"C:Program Files (x86)WinSCPWinSCP.exe" /command "open sftp://username:password@sftphost/" "cd /ADHOC" "put ""C:Templdg_pnv.csv""" "close" "exit"
但是当我添加/ini=nul
开关时,上传不起作用,也没有返回任何错误。 有谁知道为什么添加顺便推荐的开关会导致这种情况?
C:Usersanh le>"C:Program Files (x86)WinSCPWinSCP.exe" /ini=nul /command "open sftp://username:password@sftphost/" "cd /ADHOC" "put ""C:Templdg_pnv.csv""" "close" "exit"
不确定你想实现什么,但事实上你的命令/ini=nul
不起作用。您正在连接到 SSH (SFTP( 服务器,这需要验证服务器的主机密钥。您的脚本不会这样做,并且当您使用/ini=nul
时,WinSCP 不会使用(可能(来自 WinSCP GUI 配置的缓存主机密钥。
不过,我确信WinSCP确实"返回错误"。您只是看不到打印的错误,因为您没有启用日志记录(/log
开关(,也没有使用控制台界面(winscp.com
或/console
(。
完整命令可以是这样的:
C:Usersanh le>"C:Program Files (x86)WinSCPWinSCP.com" /log=C:somepathwinscp.log /ini=nul /command "open sftp://username:password@sftphost/ -hostkey=""server_host_key""" "cd /ADHOC" "put ""C:Templdg_pnv.csv""" "close" "exit"
WinSCP GUI 可以为您生成这样的完整命令,包括-hostkey
开关。