在之前的鏈接中,您可以使用一個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