dポイントプレゼントキャンペーン実施中!

いつも大変御世話になっております。
使用端末:Windows2000SP4

ツリー構成は以下の(1)~(4)になります。

(1)【E:\test】内にtest.batがあります。
(2)【E:\IFFILE\】内には、テキストファイル(拡張子はtxt)が毎日不定期な数(1ファイルだったり、15ファイルだったり)あります。
(3)【E:\IFFILE\CHK】内には【GOOD】【0_FILE】【No_File】フォルダがあります。
(4)検索対象ファイル:50ファイル

今回悩んでいるの、test.batのコードで、具体的に何をしたいかと言うと・・・

(1)【E:\IFFILE\】内に(4)のファイル名にファイル存在有無の検索をかけます。
検索条件は以下の通りです

・ファイルが存在しない場合(※1)
・ファイルがあるが、サイズが0のファイルが存在する場合(※2)
・ファイルがあり、サイズがあるファイルが存在する場合(※3)

(※1)【E:\IFFILE\CHK\No_File】フォルダにそのファイル名ではじまるファイル名にして語尾に日付を付け、
そのファイルの中に【ファイルがありませんでした。】のメッセージを表示。

(※2)【E:\IFFILE\CHK\0_FILE】フォルダにそのファイル名ではじまるファイル名にして語尾に日付を付け、
そのファイルの中に【0件データでした。】のメッセージを表示。

(※3)【E:\IFFILE\CHK\GOOD】フォルダにそのファイル名ではじまるファイル名にして語尾に日付を付け、
そのファイルの中に【データのある正常なデータでした。】のメッセージを表示。

コードは中途半端ですが、下記の通りです。

set yy=%date:~2,4%
set mm=%date:~7,2%
set dd=%date:~10,2%
REM =======================================================
echo %YMD%,%HHMMSS%,"サイズ検索処理開始"
REM =======================================================
@echo off
for /f %%a in ("E:\IFFILE\L2001.TXT") do set chk=%%~za%
if %chk%==0 goto :END
echo データのある正常なデータでした。。 >> E:\IFFILE\CHK\GOOD\L2001_%yy%%mm%%dd%.txt
goto :EOF
:END
echo 0件データでした。 >> E:\IFFILE\CHK\0_FILE\L2001_%yy%%mm%%dd%.txt
REM =======================================================
echo %YMD%,%HHMMSS%,"サイズ検索処理終了"
REM =======================================================

どうもファイルがない場合の処理記述方法と、フォルダ内すべてのファイルの連続検索がわかりません。
どうすればよいのでしょうか?

A 回答 (2件)

yahoo知恵袋にも投稿されていますよね。


こちらに回答を書いていますので参考までにご覧下さい。

http://d.hatena.ne.jp/jak-san/20081123/p1

参考URL:http://d.hatena.ne.jp/jak-san/20081123/p1
    • good
    • 0

>(1)【E:\IFFILE\】内に(4)のファイル名にファイル存在有無の検索をかけます。


>検索条件は以下の通りです

検索する条件が抜けています。

検索した結果のアクションとして※1、※2、※3が場合分け風に書いてありますが、実は3ケースの場合分けじゃなくて、

if(検索条件に合致するファイルが1つ以上ある){
 for each (合致した全ファイル) as 個々のファイルについて {
  if(ファイルサイズが0) ※2の処理
  else ※3の処理
 }
}else{
 ※1の処理
}

ということ?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!