

WindowsでFTPをバッチファイルから呼び出すことを考えています。FTPで送信エラーが発生した場合に、FTPのエラーとして検知したいのですが、その方法をご存じのかたおりましたら教えて下さい。(Windows-NTで標準で提供されるFTPを使用しています)直接私が確認したわけではありませんが、FTP送信でエラーが発生してもFTPの終了コードが0になってしまうらしく、FTPのエラーを検知できないそうです。WindowsであればWindows-NT以外の環境でもかまいませんので、ご存じのかたおりましたら教えて下さい。
No.3ベストアンサー
- 回答日時:
標準のツールでやるなら、ftpコマンドの出力をファイルにリダイレクトして、find か findstr コマンドで適当な文字列の有無で判断するしかないですね。
>FTPで転送後に転送先のホスト内のある処理が自動的に動き
とのことですが、転送先ホストで単純にデータファイルの有無で先に進むと、転送途中のファイルを読んだり、転送エラーで途中で終わったファイルを読んだりする可能性があるので、普通は、転送元でデータファイルの正常転送を確認後に目印ファイル(中身は空でよい)を送り、転送先では目印ファイルがあることでデータファイルが正しく受信できたことを判断して目印ファイルを消して先に進む(データファイルを処理する)のが良く使われる手法です。
>標準のツールでやるなら、ftpコマンドの出力をファイルにリダイレクトして、find か findstr コマンドで適当な文字列の有無で判断するしかないですね。
なるほど、その方法がありますね。その方法で出来るか、検討してみます。
>転送先では目印ファイルがあることでデータファイルが正しく受信できたことを判断して目印ファイルを消して先に進む(データファイルを処理する)のが良く使われる手法です。
貴重な、ご指摘ありがとうございます。受信側のプログラムが転送途中で、ファイルを処理するようなことがある場合は、このご指摘をふまえて対策を考えたいと思います。
現在、標準のFTPを使用していますが、下記の点が満足できれば、標準のFTPであることにこだわるつもりはありません。
1.バッチファイルから呼び出せること。
2.Windowsで実行可能なこと。
3.異常終了時に、異常終了の終了コードを返すか、又は簡単にそのことが判ること。
もし、上記のようなFTPをご存じでしたら、教えてください。
No.4
- 回答日時:
#3です。
unix用ではncftpput/ncftpgetがあります。win版が無いかと「ncftpput win32」で検索すると、
http://www.reb00t.com/win32/utils/
にあるようです。
ncftpput --help で簡単なヘルプが出ます。私も今回始めてダウンロードして使ってみましたが、ちゃんと動くようで、ERRORLEVELにエラーが返ります。検索すればunix用だと解説ページも見つかると思います。
見つかったものの、由来がよくわからないバイナリなので、ftpログをfindするほうがお勧めですけど。
ありがとうございました。これを使ってみます。ご指摘のようにftpログをfindする方法が、安全&確実のように思われますので、この方法と比較してどちらかを採用するようにします。
No.2
- 回答日時:
#1のN_Shimaです。
1)転送側からは「目的のファイル」と「転送するファイルの一覧(DIRコマンドの結果のようなもの)」を転送
2)受信側では定期的に「転送するファイルの一覧」をチェックさせて、ファイルがあれば受信済の実際のファイルと一覧の情報が一致するか突き合わせ
3)情報が一致している場合は目的のファイルを処理
ということを受信側の自動処理の最初にさせられれば良いのではないでしょうか。
早速の返信ありがとうございます。
実は、転送側のプログラムの作成は、こちらで行いますが、受信側のプログラムは既に既存のシステムのプログラムであり、こちらで作成(改造)する訳にはいかないのです。本件のシステムは、FAXの自動送信システムで以下のように運用されます。
1.転送元からFAXの元データをFTPで転送先へ送ります。
2.受信側では、そのファイルの内容を参照し、指定先へそのファイルの内容をFAXとして送信します。送信が完了すると、そのファイルを削除します。
3.受信側にはたくさんの転送元から、FAX用データがFTPで送られてきます。今回、1つの転送元のFTP転送作業を私どもで、行います。
No.1
- 回答日時:
私が以前同じような事をバッチ処理したときは、FTP処理後に転送先のファイルの有無とタイムスタンプ・ファイルサイズを取得して、転送元と一致するかを確認させていました。
早速の回答ありがとうございました。
うーん。なるほど。やはりFTPの転送先のファイルまで確認しないとだめですか。今回はFTPで転送後に転送先のホスト内のある処理が自動的に動き、FTPで転送したファイルを削除する可能性があるのです。(処理が完了したファイルを削除します)従って、FTPの転送先のファイルを確認する方法は出来るだけ避けたいのです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
シェルスクリプトでFTPの実行結果を取得するには
その他(プログラミング・Web制作)
-
ftpコマンドの戻り値をチェックしたい
その他(プログラミング・Web制作)
-
ftpコマンドバッチファイルのリダイレクト結果
その他(プログラミング・Web制作)
-
-
4
ftpコマンド出力結果の取得
その他(プログラミング・Web制作)
-
5
FTPコマンドの戻り値について
その他(OS)
-
6
FTP送信エラーの検知について
その他(プログラミング・Web制作)
-
7
FTPエラー425
その他(コンピューター・テクノロジー)
-
8
ftpコマンドのput,mputの上書きしない方法について
サーバー
-
9
FTPで書き込み中のファイルの完了を知りたい
C言語・C++・C#
-
10
コマンドでのFTP転送が進まない。
その他(コンピューター・テクノロジー)
-
11
Windowsのバッチファイルで正規表現の置換方法について…
Windows 10
-
12
WshShellから起動したbat(ftp)の応答メッセージを取得するには
Visual Basic(VBA)
-
13
ftpのmgetコマンドの自分の格納場所の指定方法は?
Windows Me・NT・2000
-
14
renameコマンドについて
その他(プログラミング・Web制作)
-
15
ftp処理でmove(移動)を行いたい
その他(プログラミング・Web制作)
-
16
FTPで存在しないファイルをGETしたときの動作について
その他(コンピューター・テクノロジー)
-
17
FTPコマンド mgetでとまってしまう
IT・エンジニアリング
-
18
FTPコマンドでディレクトリごとファイル移動できるコマンドはありますか?
その他(プログラミング・Web制作)
-
19
Linux shell ftp 転送 エラー制御
UNIX・Linux
-
20
-bash: ftp: コマンドが見つかりません
UNIX・Linux
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ExcelVBAで既に開いてるwordを...
-
フロッピー上のファイルクロー...
-
access テキストボックスの値取得
-
batファイルでレジストリキーの...
-
NAS上のファイルの使用中が解除...
-
VB6 Dir関数で52エラー発生
-
ASP.NETでWebConfigのエラー
-
至急
-
VBAでDLLが見つからないエラー
-
VBでファイルが開かれているか...
-
freadでデータがない場合の読込...
-
kernel32.dllファイルがコピー...
-
EXCEL マクロについて教えてく...
-
VBから参照できないCのDLLを使...
-
VB実行時エラー75:「パス名が...
-
ネットワーク上でのファイル操...
-
「パス名が無効です」の発生原因
-
パワーポイントで『訂正できな...
-
システムのシャットダウンは既...
-
アクセスのクエリでコンパイル...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
access テキストボックスの値取得
-
Returnに対するGoSubがありません
-
「パス名が無効です」の発生原因
-
PowerShellを使って関連付けら...
-
NAS上のファイルの使用中が解除...
-
アクセスのクエリでコンパイル...
-
VBでファイルが開かれているか...
-
ExcelVBAで既に開いてるwordを...
-
エクセルマクロでエラーの原因...
-
batファイルでレジストリキーの...
-
【COBOL】read文でエラー
-
VB6 Dir関数で52エラー発生
-
「アクティブ ユーザーが多すぎ...
-
データベースソフトのアクセス2...
-
VBから参照できないCのDLLを使...
-
DisplayAlertsブロパティで ”実...
-
Access2013にてドラッグ&ドロ...
-
ACCESS VBAでのインポート
-
すでにファイルが開かれている...
-
Vba ファイル書き込み時に書き...
おすすめ情報