从VBA调用WinSCP命令行时,获取"命令"的参数太多

时间:2017-12-18 09:56:46

标签: vba ftp access winscp

Upload file via FTP from Excel VBA非常有帮助,我使用代码将本地文件夹同步到我的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

exitsynchronize一行在同一行,当我使用put脚本时,这并不会发生。我该怎么做才能防止这种情况发生?

1 个答案:

答案 0 :(得分:1)

您在synchronize命令后缺少结束引用。并且-filemask值附近的引号必须加倍。或者实际上,您不需要它们,因为值不包含空格。

这样做:

   """synchronize local " & localfolder & " /www/remotefolder/wines -filemask=*.png""" & _

请参阅https://winscp.net/eng/docs/commandline#syntax