我的目标是从 SFTP 服务器下载文件,而不是上传文件,并且我正在尝试调整本网站上另一个问题的代码来执行此操作(为了方便起见,我粘贴了下面的代码)。
我从 Putty 下载了 PSFTP。当我尝试使用以下命令行进行连接时,PSFTP 关闭:
open username:[email protected] /cdn-cgi/l/email-protection: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
我认为您应该从 Windows 命令提示符会话开始。正如我在回答类似问题时所建议的那样,在那里计算出命令行的详细信息:使用 VBA 进行 SFTP 上传 https://stackoverflow.com/a/3789851/77335。一旦有了可以在其中运行的命令行,就可以很容易地从 VBA 执行相同的命令。
我从来没有用过腻子psftp.exe
工具,仅pscp.exe
,所以我无法提供有关如何构建您的帮助psftp.exe
命令行。我注意到一件事Putty 的文档 http://the.earth.li/~sgtatham/putty/0.62/htmldoc/Chapter6.html#psftp是 PSFTP (pscp.exe
)只能与 SSH-2 服务器配合使用 --- 如果您的目标服务器仅支持 SSH-1,则 PSFTP 将无法工作。
我认为您有必要查看该链接上的 Putty 文档。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)