我编写了一个 WinSCP 脚本,用于将本地文件上传到 SFTP 站点。脚本保存到 .txt 中:
WinSCP.com
open sftp://username:password@address
cd /export/home/Desktop/Temp
put C:\Users\Dekstop\JPMC\a.xlsx
close
exit
然后我查看使用VBA运行WinSCP脚本,并将这段代码写入Excel VBA:
Sub RunWinScp()
Call Shell("C:\Program Files (x86)\WinSCP\WinSCP.com /ini=nul/script=C:\Users\Desktop\WinSCPGetNew.txt")
End Sub
但是当我尝试运行它时,什么也没有发生。没有错误,但文件也没有正确传输。有人可以帮忙吗?
非常感谢!
winscp.com
的路径括起来,因为它包含空格/ini=nul
和 /script=...
Call Shell("""C:\Program Files (x86)\WinSCP\WinSCP.com"" /ini=nul /script=C:\Users\Desktop\WinSCPGetNew.txt")
winscp.com
脚本开头的 WinSCPGetNew.txt
。 WinSCP 中没有 winscp.com
命令。您已经通过 VBA 中的 WinSCP.com
函数运行 Shell
。这实际上已经在您链接到自己的问题中涵盖了:使用 VBA 运行 WinSCP 脚本。/command
开关 在 WinSCP 命令行上指定命令,以避免需要单独的命令文件:
Call Shell( _
"""C:\Program Files (x86)\WinSCP\WinSCP.com"" " + _
"/ini=nul " + _
"/command " + _
"""open sftp://username:[email protected]/"" " + _
"""cd /export/home/Desktop/Temp"" " + _
"""put C:\users\Desktop\JPMC\a.xlsx"" " + _
"""close"" " + _
"""exit""")