在之前的链接中,您可以使用一个sftp命令行客户端来连接Mat Nadrofsky。在这个例子中,我的sftp客户端是pscp.exe。该客户端的腻子工具的一部分:PuTTY Download Page
我想建立和运行这样的命令sample.txt的到我的主目录复制在远程机器上:
"C:\Program Files\PuTTY\pscp.exe" -sftp -l hans -pw changeme C:\Access\sample.txt 192.168.1.6:/home/hans/
所以这个过程将建立并运行该命令字符串。
Public Sub SftpPut()
Const cstrSftp As String = """C:\Program Files\PuTTY\pscp.exe"""
Dim strCommand As String
Dim pUser As String
Dim pPass As String
Dim pHost As String
Dim pFile As String
Dim pRemotePath As String
pUser = "hans"
pPass = "changeme"
pHost = "192.168.1.6"
pFile = "C:\Access\sample.txt"
pRemotePath = "/home/hans/"
strCommand = cstrSftp & " -sftp -l " & pUser & " -pw " & pPass & _
" " & pFile & " " & pHost & ":" & pRemotePath
Debug.Print strCommand
Shell strCommand, 1 ' vbNormalFocus '
End Sub
您可能更ShellAndWait,而不是外壳,如大卫·芬顿在以前的答案评论建议。
首先,非常感谢你。我能够从链接帖子中找到这个人,他告诉我有关腻子的信息,并且我能够使用腻子和ShellAndWait工作。尽管你的VBA代码比我的好很多))))))))))))))一个问题,它可以在公司的笔记本电脑上工作,但不能工作。我确信有什么东西可以解决它,我问IT看看它是什么,但是过了几天,他尝试了几件事情,我有一种感觉,他会回来说“手动上传”。所以我不确定我现在在哪里,如果它因为腻子而被阻塞,或者我刚注意到什么 – lalachka 2010-09-25 12:19:57
,您正在使用pscp.exe。我使用的也是Putty的psftp.exe。是否有可能不会阻止pscp.exe并且psftp.exe是?对我来说似乎不太可能,但我绝望的想让整个事情自动化并准备好尝试任何事情。我想让一个程序自动执行点击操作然后手动执行,这似乎是错误的。我希望有人能理解。 – lalachka 2010-09-25 12:40:41
您是否可以通过工作网络中的任何方法使用sftp进行上传?如果没有,我的猜测是sftp端口在那里被阻塞。我怀疑pscp.exe与psftp.exe会有所不同,但是您可以尝试切换。当shell窗口不起作用时,您会在shell窗口中看到什么响应? – HansUp 2010-09-25 14:18:44