プロが教える店舗&オフィスのセキュリティ対策術

バッチ処理で、特定のフォルダ内(配下にフォルダとファイルが混在している)でファイルだけの存在有無を調べて、ファイルが存在している場合とファイルが存在していない場合で処理を別々に行わせようとしたいのですが、ファイルの存在有無はどのようにコマンドで調べれば良いでしょうか?

DIR C:\test\*.* でファイルを調べて、ERRORLEVELでif判定させようと思っているのですが、 DIRコマンドでこれを行うと、フォルダまで表示されます。

どのようにしたら良いのでしょうか?教えてください。

A 回答 (3件)

コマンドプロンプトで、「DIR /?」と入力すれば、DIRコマンドのヘルプが表示されます。



その記述によれば
「/A」属性スイッチで、必要な属性を持つファイルを指定できます。
    • good
    • 6
この回答へのお礼

DIR フォルダ名 /a:-d でフォルダにファイルが存在するかどうか調べることができました。

DIR C:\test\ /a:-d

ERRORLEVELが以下のように返します。
1: ファイルなし
0: ファイルあり

お礼日時:2006/07/25 01:07

@echo off


for %%F in (test\*.*) do goto FILE_EXIST
echo ファイルが無い
goto End

:FILE_EXIST
echo ファイルが有る
:End
    • good
    • 7
この回答へのお礼

for を使った方法を教えていただいてありがとうございます。

お礼日時:2006/07/25 01:08

@echo off


if exist c:\test\*.* goto AnyFileExist
ファイルが1つも無い時の処理
goto End
:AnyFileExist
何かのファイルがあった時の処理
:End

これで「純粋に、c:\test\に何か『ファイルが』あった時だけ」を判定出来ます。

この回答への補足

if exist c:\test\*.* で試したところ、フォルダ内に何もファイルが無いときでも真になってしまうのですが、どうすればよいでしょうか?

補足日時:2006/07/24 15:25
    • good
    • 10

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A