我的目标是从SFTP服务器下载文件而不是上传文件,我正在尝试改编这个站点上另一个问题的代码来实现这一点(为了方便起见,我将代码粘贴在下面)。 我从Putty下载了PSFTP。 当我尝试使用以下命令行连接时,PSFTP会关闭:
我有三个问题:
open username:password@server.com.port: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
-l
是什么意思?在研究sftp时,我看到一个用户使用了-B
而不是-l
来下载文件。看看那是否有帮助? - Siddharth Rout-l
选项用于指定服务器上的用户帐户。我认为它旨在模仿“ssh”客户端命令中的命令选项。 - HansUp-B
选项用于指向一个文件,该文件包含在连接到服务器后作为批处理运行的命令。http://docs.attachmate.com/reflection/rsit-ssh/7.2/winclient/en/help/index.htm - HansUp