psftp
put
大约有百分之一的时间失败,例如
本地:无法打开 d:\WorkPath\F_56MTV56201504201707224380.csv
此时我唯一能看到的不同之处是使用带有本地文件名的 lcd 命令,而不是使用完全限定的路径,但理论上,这不应该改变任何东西,或者我错过了什么?
示例批处理文件:
"D:\\Program Files\\ApplicationPath\\psftp.exe" ^
1.2.3.4 -l username -pw password -batch -bc ^
-b "d:\\\\WorkPath\\\\\EXMSP35201504210946233890.script" ^
> "d:\\\\WorkPath\\\\\EXMSP35201504210946233890.script.log" 2>&1
示例脚本文件:
put d:\\\\WorkPath\\\\EXMSP35201504210946233890.csv
bye
D: 看起来像是连接到服务器的物理磁盘,但是,服务器 2008R2 在 VMWare 虚拟平台上。
使用一些 WinAPI 记录器 找出底层
CreateFile
WinAPI 函数调用失败的原因。
或者使用具有更详细错误消息的不同 SFTP 客户端。
例如,等效的WinSCP脚本是:
winscp.com /command ^
"option echo on" ^
"open sftp://username:[email protected]/" ^
"put d:\WorkPath\EXMSP35201504210946233890.csv" ^
"exit" > d:\WorkPath\EXMSP35201504210946233890.script.log
使用 WinSCP,您会收到如下错误:
文件或文件夹“d:\WorkPath\EXMSP35201504210946233890.csv”不存在。
系统错误。代码:3.系统找不到指定的路径
查看 WinSCP 脚本编写的介绍。
(我是WinSCP的作者)
你不应该在路径中使用双反斜杠。尽管 Windows 可以容忍。