2016-09-02 10 views
3

複数のFTPサーバーから特定のファイルを取得しようとしています。これらのサーバーの詳細はExcelファイルに保存されます。だから私は.batファイルを生成するためにVBAコードを書いています。ftp.exe(VBAで生成されたバッチファイル)を使用して複数のFTPサーバーに順番に接続

コード:

Const script = "C:\Users\xyz.abc\trial.bat" 
Dim fileno As Integer 
Dim retval As Variant 
fileno = FreeFile 
Open script For Output As #fileno 
Dim i As Integer 

Print #fileno, "open " & Cells(2, 2).Value  'server ip 
Print #fileno, Cells(2, 3).Value   'username 
Print #fileno, Cells(2, 4).Value   'password 
Print #fileno, "cd " & Cells(2, 5).Value 'path 
Print #fileno, "get " & Cells(2, 6).Value  'filename 
Print #fileno, "bye" 
Print #fileno, "open " & Cells(3, 2).Value  'server ip 
Print #fileno, Cells(3, 3).Value   'username 
Print #fileno, Cells(3, 4).Value  'password 
Print #fileno, "cd " & Cells(3, 5).Value  'path 
Print #fileno, "get " & Cells(3, 6).Value  'filename 
Print #fileno, "bye" 

Close #fileno 

私が直面しています問題は、それは、最初のサーバにログインし、ファイルを取得してから停止しています。次回のサーバーログインには向かない。個別に両方のサーバーで動作しています。 .batファイルを介して、この複数のログインを手伝ってください。

+0

「Print #fileno」の前に 'Print #fileno、SLEEP 10'を追加すると、&Cells(3,2).Value'が開きます。また、セルオブジェクトを完全修飾することもできます。たとえば、 'Cells(2、2).Value'は' ThisWorkbook.Sheets( "Sheet1")です。セル(2、2).Value' –

答えて

3

byeコマンドは、ftp.exeを終了します。

接続を切断するには、closeコマンド(またはそのdisconnectエイリアス)を使用します。

byeは、最後のサーバーの後の最後にのみ使用してください。

+0

ありがとうございます。今は完璧に動作しています –

関連する問題