我的目标是下载,而不是从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