以下のように動作します。
- 取得先ドライブへ移動
- 取得先フォルダへ移動
- 取得先フォルダ以下に、日付時刻ディレクトリを作成し移動する
(2007年03月13日12時10分⇒200703131210) - ftp用スクリプトの作成(ftpexec.ftp)
- ftp用スクリプトの実行
- スクリプトの実行結果(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