以下のように動作します。
- 取得先ドライブへ移動
- 取得先フォルダへ移動
- 取得先フォルダ以下に、日付時刻ディレクトリを作成し移動する
(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