こんばんわ。
今回はコマンドプロンプトのFTPコマンドについて質問させてください。
処理概要
Windowsバッチにて、サーバA(Windows)からサーバB(UNIX)にFTPでファイルを複数送りたい
その際、FTPが成功したか失敗したかをログファイルに出力したい。
以下プログラム
set logDir=C:\hogehoge\log\
set settingFileName=C:\hogehoge\upload.ftp
set execDate=%date:~-10,4%%date:~-5,2%%date:~-2,2%
set logFileName=%logDir%log_%execDate%.txt
echo FTPバッチ起動 >> "%logFileName%"
cd C:\hogehoge
echo FTP開始 >> "%logFileName%"
ftp -s:"%settingFileName% >> "%logFileName%"
upload.ftpというファイルには以下のように記述しております。
ftp
open サーバIP ポート
ログインID
パスワード
binary
prompt
mput *.csv
bye
この2種類のファイルで、FTPは出来るのですが、
どうにかして成功/失敗を判断したいです。
どなたかわかる方、ご教授お願いいたします。
補足
UNIX上のバッチ処理(Cシェル)でもファイルがあるかどうか判断していますが、
WindowsでFTP失敗の場合、メールを送りたくてこのようなバッチを作成しました。
No.2ベストアンサー
- 回答日時:
>そもそも、転送元のファイルサイズと、転送したファイルサイズが違っているので、
binモードなのにファイルサイズと転送サイズが違っているのなら、転送が失敗していると言うことです。
>また、相手側の都合上WindowsにFTPサーバを常駐させる事はNGらしく、mgetもできません・・・。
??こちらがWindowsで、相手がUnix(FTPサーバあり)なのでは?
何の問題も無いと思いますが?混乱してませんか?落ち着いてください。
>binモードなのにファイルサイズと転送サイズが違っているのなら、転送が失敗していると言うことです。
なるほど。
見た感じちゃんと転送できてそうでしたが、ちゃんと調べる必要がありますね・・・。
>??こちらがWindowsで、相手がUnix(FTPサーバあり)なのでは?
何の問題も無いと思いますが?混乱してませんか?落ち着いてください。
確かに、言うとおりです。
UNIXにmputして、別ディレクトリにmgetしてファイルの個数が一致してたらOKにしようと思います。
明日確認してみます。
また躓いたらよろしくおねがいします。
No.1
- 回答日時:
FINDSTR 等でログファイルから自分が成功と判断する文字列を探してあれば成功と見なします。
特に複数ファイルを転送するようなので、何を以て成功とするか難しいでしょうね。
ログに出る転送バイト数とそれぞれのファイルサイズを比較するのでしょうか。
setlocal enabledelayedexpand
・・・・・
set ERR=0
for /f "usebackq tokens=1-8" %%A in ("%logFileName%") do (
if %%A==150 set for /f %%X in (%%H) do set SIZE=%%~zX
if %%A==ftp: if not %%B==!SIZE! set /a ERR+=1
)
if not %ERR% == 0 (
エラーがあった時の処理
)
これは私がさっきやってみたログの場合なので、OSが違うと修正が必要な可能性があります。
他には、mput したあと、別のディレクトリに lcd して mget して、元のファイルとコンペアするとか。
回答ありがとうございます。
どうやら出来ていないようです。
そもそも、転送元のファイルサイズと、転送したファイルサイズが違っているので、
この方法は使えないみたいです・・・。
また、相手側の都合上WindowsにFTPサーバを常駐させる事はNGらしく、mgetもできません・・・。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- サーバー FTPサーバについて詳しい方(アクセス権のないディレクトリを非表示にする方法) 4 2022/08/22 22:33
- サーバー Googleドライブなどを使わずにテザリングAndroidでWindowsとファイル共有 1 2023/02/19 13:14
- その他(インターネット接続・インフラ) 楽天ひかりでホームページアップロードが出来ない 1 2022/07/30 10:02
- プロバイダー・ISP hpb22の接続方法の変更 1 2023/08/06 18:47
- サーバー FFFTPで特定サイトだけUploadできない 4 2022/08/27 14:53
- サーバー ECサイトのFTPサーバーに使わないファイル20GBくらいがあるのですが、削除したら表示速度やページ 2 2022/12/20 08:45
- その他(プログラミング・Web制作) wordpress 管理画面にログインについて(ftpファイル抹消してしまう) 2 2023/02/06 19:45
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る バッチからEXEの結果を受け取りたいのですが、 下記のバッ 1 2023/07/04 15:13
- ドメイン・サーバー・クラウドサービス FileZillaを使用してwpXサーバーに接続できない 2 2022/03/29 21:02
- デスクトップパソコン ウイルスに感染しないファイルのバックアップ方法について 5 2022/09/11 11:27
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コマンドプロンプトの「%1」と...
-
[DOS] コピー先に同じファイル...
-
コマンドプロンプトでファイル...
-
バッチファイルで、iniファイル...
-
ExcelVBAのDirでスペース含むフ...
-
ファイル名を該当フォルダ内か...
-
access,vbaでフォルダ内のファ...
-
フォルダ内の更新日時が一番新...
-
コマンドプロンプトで変数が数...
-
バッチコマンドでファイル名の...
-
画像をコピーしてリネームするbat②
-
aタグのhrefにネットワークパス...
-
ファイル名の頭5桁と同名のフォ...
-
バッチファイルで、ファイル名...
-
Windowsコマンドプロンプトで、...
-
DOSのバッチ作成について‐FORの...
-
エクセル VBA ファイル名削除
-
VBScriptで特別な意味を持つ記...
-
VBA GetAttrについて教えてくだ...
-
ファイル名に ” を使うと エク...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コマンドプロンプトの「%1」と...
-
[DOS] コピー先に同じファイル...
-
コマンドプロンプトでファイル...
-
コマンドプロンプトで変数が数...
-
バッチファイルで、iniファイル...
-
バッチコマンドでファイル名の...
-
ftp処理でmove(移動)を行いたい
-
フォルダ内の更新日時が一番新...
-
.batでファイル名から抽出して...
-
ExcelVBAのDirでスペース含むフ...
-
access,vbaでフォルダ内のファ...
-
DOSのバッチ作成について‐FORの...
-
R18文学賞はファイル名は自由で...
-
ファイル名に ” を使うと エク...
-
【vbs】ファイル名の検索と該当...
-
コマンドプロンプトまたはpower...
-
【Access】エクスポート時のフ...
-
Windowsコマンドプロンプトで、...
-
サブフォルダからファイルをコ...
-
ファイル名を該当フォルダ内か...
おすすめ情報