我的目標是下載,而不是從SFTP服務器上傳文件,並且我正在嘗試修改本網站上其他問題的代碼,以便這樣做(爲了方便起見,我粘貼了下面的代碼)。使用SFTP與VBA下載文件
我從Putty下載了PSFTP。 PSFTP關閉,當我嘗試使用以下命令行來連接:
open username:[email protected]:1111
我有三個問題:
什麼毛病我的命令行?如果不是,那可能是什麼問題?
據我所知,SFTP通常會使用get/put命令,但我在下面的代碼中看不到put命令,所以我不明白我應該在哪裏輸入get命令來下載文件而不是上傳它(這是下面的代碼應該做的)。
pRemotePath是SFTP服務器上文件的位置,pFile是我希望文件下載到的位置是否正確?
一個簡單的解釋將非常感激。
Public Sub SftpGet()
Const cstrSftp As String = """C:\Users\Ron\UtilityTools\psftp.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 = "uid"
pPass = "PW"
pHost = "dns"
pFile = "C:\Users\Ron\activity.txt"
pRemotePath = "Z:/activity.log"
strCommand = cstrSftp & " -sftp -l " & pUser & " -pw " & pPass & _
" " & pFile & " " & pHost & ":" & pRemotePath
Debug.Print strCommand
Shell strCommand, 1 ' vbNormalFocus '
End Sub
聽起來像你在製造一個木馬......笑話。 – Raptor
我從來沒有使用sftp,所以現在我要建議的可能無法正常工作。 '-l'做什麼?在研究sftp時,我遇到了一個用戶使用'-B'而不是'-l'來下載文件的網站。看看是否有幫助? –
@SiddharthRout'-l'選項用於指定服務器上的用戶帳戶。我認爲它的目的是模仿'ssh'客戶端命令的命令選項。 – HansUp