通过FTP从Excel上传文件非常有用,我正在使用代码将本地文件夹同步到我的FTP服务器。
Call Shell( _
CurrentProject.Path & "\WinSCP.com /log=" & CurrentProject.Path & "\ftp.log /command " & _
"""open ftp://user:pass@ftp.server.com/"" " & _
"""synchronize local " & localfolder & " /www/remotefolder/wines -filemask=""*.png"" " & _
"""exit""")
我试图在最后发出一个exit
命令,但是代码给了我一个
命令“同步”的参数太多。
日志中的行告诉我
synchronize local C:\localfolder\wines /www/remotefolder/wines -filemask=*.png exit
exit
与synchronize
在同一行,当我使用put脚本时,不会发生这种情况。我能做些什么来防止这件事?
发布于 2017-12-18 10:05:38
在synchronize
命令之后缺少闭幕式引号。而围绕-filemask
值的报价必须加倍。或者实际上,您不需要它们,因为值不包含空格。
这样做可以:
"""synchronize local " & localfolder & " /www/remotefolder/wines -filemask=*.png""" & _
请参阅https://winscp.net/eng/docs/commandline#syntax
—hostkey
和—rawsettings
开头的符号不是简单的连字符减号 (-
),而是埃达什 (—
)。
请使用连字符-减号(-
) -在标准英语和其他键盘上找到的破折号是什么。
因此,实际上,您有与https://winscp.net/forum/viewtopic.php?t=15981完全相同的问题。
或者更简单,有WinSCP GUI为您生成一个脚本模板。
也见FAQ 为什么批处理文件中指定的一些WinSCP脚本命令没有执行/失败?
具有相同错误信息的其他问题,但不同的问题:
https://stackoverflow.com/questions/47865865
复制相似问题