- PR -

ftpコマンドの終了コード

1
投稿者投稿内容
のだ
会議室デビュー日: 2006/07/11
投稿数: 13
投稿日時: 2006-11-22 14:29
現在バッチファイルを作成してftp転送をタスクスケジューラからスケジューリング
しようと考えています。
バッチファイルではftp実行用のコマンドファイルを出力するようしてからftpコマンド
を実行しています。(putするファイル名が可変のためコマンドファイルを別途出力する
ようにしています。)
ftp転送終了後に転送したファイルを削除したいのですが、ftp転送が失敗した場合には
ファイルを消さない処理にしたいと考えています。しかしftpのエラーコードのとり方が
わからずftpサービスを止めた状態で実行してもエラーコードが0になりファイルが消さ
れてしまいます。エラー発生時にファイルを消さないような処理をするにはどうしたら
良いでしょうか?

バッチファイルをほとんど作ったことが無い為、わからないことだらけで申し訳ないの
ですがアドバイスをお願いします。

<作成したバッチファイル>

echo open IPアドレス> script.txt
echo ユーザ名>> script.txt
echo パスワード>> script.txt
echo bin>> script.txt
echo cd フォルダ名>> script.txt
echo put "ファイルパス">> script.txt
echo disconnect>> script.txt
echo bye>> script.txt

ftp -s:script.txt>>ftp.log

if %ErrorLevel% NEQ 0 GOTO ERROR
del "ファイルパス">>ftp.log
ECHO ftp転送終了 >>ftp.log
GOTO END

:ERROR
ECHO ftp失敗しました >>ftp.log
GOTO END

:End

[ メッセージ編集済み 編集者: のだ 編集日時 2006-11-22 14:30 ]
Tdnr_Sym
ぬし
会議室デビュー日: 2005/09/13
投稿数: 464
お住まい・勤務地: 明石・神戸
投稿日時: 2006-11-22 14:48
こんにちは。

FTPコマンドのリターンコードでは転送が成功したかどうかは判定できなかったと思います。

出力されるリプライコード(のださんの例だとftp.logファイルに出力されている)を拾って
判定するしかないように思います。

リプライコードの意味は次のリンク先が参考になるかと思います。

RFC959
4.2.1 Reply Codes by Function Groups
http://www.faqs.org/rfcs/rfc959.html

FTPのレスポンスコード一覧
http://www.atmarkit.co.jp/fnetwork/rensai/netpro10/ftp-responsecode.html

1

スキルアップ/キャリアアップ(JOB@IT)