定型ftp getバッチ

以下のように動作します。

  1. 取得先ドライブへ移動
  2. 取得先フォルダへ移動
  3. 取得先フォルダ以下に、日付時刻ディレクトリを作成し移動する
    (2007年03月13日12時10分⇒200703131210)
  4. ftpスクリプトの作成(ftpexec.ftp)
  5. ftpスクリプトの実行
  6. スクリプトの実行結果(ftpresult.txt)から、成功判定コード(デフォルト226)を検索し存在すれば、成功とみなす。存在しなければ失敗とみなして、実行結果を表示する。
@echo off 
rem 相手先IPアドレス
set IPADR=192.168.1.10

rem カレントドライブ(取得先ドライブ 例:set DRV=d:)
set DRV=d:

rem カレントディレクトリ(取得先ディレクトリ 例:set GETDIR=temp)
set GETDIR=temp

rem リモートディレクトリ(cd先 cdしない場合は. DATAへcdする場合は:set REMDIR=DATA)
set REMDIR=.

rem リモートデータ
set DATAFILE1=hoge.dat
set DATAFILE2=huga.dat

rem アカウント
set USERNAME=ftpuser
set PASSWORD=ftppass

rem 成功判定コード(FTPコード)
set SUCCESSCODE="226 Transfer"

rem ドライブ移動
%DRV%
rem ディレクトリ移動
cd %GETDIR%

rem 取得用ディレクトリとして日付名のディレクトリを作成します(2007年3月1日取得⇒20070301)
for /F "tokens=1-3 delims=/ " %%a in ('date /t') do SET DT=%%a%%b%%c
rem 次行をコメントアウトするとフォルダ名に時間が付与されません
for /F "tokens=1-2 delims=: " %%a in ('time /t') do SET NOWTIME=%%a%%b
rem 日付ディレクトリ作成
mkdir %DT%%NOWTIME%

rem 日付ディレクトリへ移動
cd %DT%%NOWTIME%

rem -------------FTPファイル書き込み------------------
echo open %IPADR%> ftpexec.ftp
echo %USERNAME%>> ftpexec.ftp
echo %PASSWORD%>> ftpexec.ftp
echo bin>> ftpexec.ftp
echo cd %REMDIR%>> ftpexec.ftp
echo get %DATAFILE1%>> ftpexec.ftp
echo get %DATAFILE2%>> ftpexec.ftp
echo bye>> ftpexec.ftp

rem -------------FTP実行-------------------
echo データファイルの受信を開始します。
ftp -s:ftpexec.ftp > ftpresult.txt

rem -------------FTP成功判定-------------------
find %SUCCESSCODE% ftpresult.txt 
if %errorlevel% NEQ 0 goto ng

goto end

:ng
rem -------------FTP送信失敗-------------------
echo FTP失敗しました、以下[ftpresult.txt]を参照ください。
echo ▼-------ftpresult.txt開始--------▼
type ftpresult.txt
echo ▲-------ftpresult.txt終了--------▲
goto end

:end
pause
echo on