你好编码器和代码(?)我的WINSCP命令有问题......希望你能帮忙。
我有一个调用WinSCP命令行的powershell脚本......
$LastFile = "$A\BC0722.txt"
& 'C:\Program Files (x86)\WinSCP\WinSCP.com' /command "option batch abort" "option confirm off" "open sftp:BankOfTulsa/" "put $LastFile /incoming/temp"
这部分工作正常。它调用WinSCP没问题......
Using username "usern".
Authenticating with pre-entered password.
Authenticated.
Starting the session...
Reading remote directory...
Session started.
Active session: [1] BankOfTulsa
G:\FTP\A\ADropoff\BC0722.TXT | 2 KiB | 0.0 KiB/s | binary | 100%
Cannot close remote file 'temp'.
General failure (server should provide error description).
Error code: 4
Error message from server: Mailbox /clients/usern/pub/incoming/temp exists.
(A)bort, (R)etry, (S)kip, Ski(p) all: Abort
正如你所看到的,我得到了一个错误,如上所述......它没有加载文件,但直到无法关闭远程文件临时文件,它看起来不错......要点注意......
Cannot close remote file 'temp'.
General failure (server should provide error description).
Error code: 4
Error message from server: Mailbox /clients/usern/pub/incoming/temp exists.
我对WinSCP错误并不太熟悉,我做了一些研究,但没有真正响铃,任何人都知道这里发生了什么?
答案 0 :(得分:1)
假设/incoming/temp
是一个目录,则缺少一个尾部斜杠。你应该使用:
put $LastFile /incoming/temp/
当您仅使用/incoming/temp
时,表示您要将文件上传到目录/incoming
并将其保存到文件temp
。显然与现有的同名子目录冲突。
引用put
command的文档:
最后一个参数指定目标远程目录和可选的操作掩码,以便以不同的名称存储文件。 目标目录必须以斜杠结尾。
通常,在打开/创建文件temp
时,上传应该是正确的。但是,关闭文件时,您的服务器似乎只能检测到冲突。