公開日:10/24/2021  更新日:12/25/2021

  • twitter
  • facebook
  • line

Windowsバッチファイル内でFTPコマンドを実行する方法

はじめに

バッチファイル内でFTPコマンドを実行するには、FTPコマンドだけが書かれたテキストファイルを別途用意する必要があります。頑張ればバッチファイルだけで記述できるようですが、面倒だしコードの可読性が下がるためお勧めしません。

用意するもの

  • バッチファイル本体

test.bat

FTP -i -s:ftpcmd.txt
  • FTPコマンドテキスト

ftpcmd.txt

open ホスト名 ポート番号
ユーザ名
パスワード
何かしらのFTPコマンド
disconnect
bye

サンプル例

  • ftpcmd.txtのコマンドを5秒間隔で10回実行する
  • 実行結果をログファイルに出力する

test.bat

pushd .
%~d0
cd %~p0
setlocal ENABLEDELAYEDEXPANSION

set /A ROOP_COUNT=10
set /A WAIT_TIME=5
set LOG_FILE=result.log

for /l %%i in (1,1,%ROOP_COUNT%) do (
	ftp -s:ftpcmd.txt >>%LOG_FILE%
	if %%i neq %ROOP_COUNT% (
	    echo %WAIT_TIME% 秒待ちます >>%LOG_FILE%
	    TIMEOUT /T %WAIT_TIME%
	  )
)

ftpcmd.txt

open localhost 21
ftptest
ftptest
put test.txt
disconnect
bye

戻る