3

私の目的は、SFTP サーバーからファイルをアップロードするのではなく、ダウンロードすることです。このサイトの別の質問からコードを適応させようとしています (便宜上、以下のコードを貼り付けました)。

Putty から PSFTP をダウンロードしました。次のコマンド ラインを使用して接続しようとすると、PSFTP が閉じます。

open username:password@server.com.port:1111 

3 つの質問があります。

  1. コマンドラインに何か問題がありますか? そうでない場合、何が問題になる可能性がありますか?

  2. 私が知る限り、SFTP は通常 get/put コマンドを使用しますが、以下のコードに put コマンドが表示されないため、ファイルをアップロードする代わりにファイルをダウンロードするために get コマンドをどこに入力すればよいかわかりません (これは、以下のコードが実行することになっているものです)。

  3. 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
4

1 に答える 1

2

Windows コマンド プロンプト セッションから開始する必要があると思います。同様の質問への回答で提案したように、そこでコマンドラインの詳細を調べてください: SFTP upload with VBA . そこで機能するコマンド ラインがあれば、VBA から同じコマンドを実行するのは非常に簡単です。

Putty のpsftp.exeツールを使用したことがないため、コマンド ラインpscp.exeの作成方法についてはお答えできません。Putty のドキュメントpsftp.exeで気づいたことの 1 つ は、PSFTP ( ) は SSH-2 サーバーでのみ動作するということです。ターゲット サーバーが SSH-1 のみをサポートしている場合、PSFTP は動作しません。pscp.exe

そのリンクにあるパテのドキュメントを確認する価値があると思います。

于 2012-05-03T15:29:20.183 に答える