2016-10-05 2 views
-1

複数のフォルダが一括して空であるかどうかを確認しようとしています。空の場合は、「ファイルがありません」という意味です。 各フォルダを別々のスクリプトに渡しています。構文上の問題があるようです。 助けてもらえますか?ありがとう! 私は1つ1つで複数のフォルダを見ています。ありがとう!SEVERALフォルダがループで一括して空であるかどうかを確認するにはどうすればいいですか?

スクリプトCopyFiles.bat

for /F %%i in ('dir /b %~1*.*') do (
    echo Folder is NON empty 
) 
echo Folder is empty or does not exist 

メインスクリプト:

@echo off 

for /F %%i in ('dir /b C:\*.*') do 
(
    call CopyFiles.bat %%i 
) 
+1

[BATCHスクリプトを使用してディレクトリにファイルが存在するかどうかを確認する](http://stackoverflow.com/questions/10813943/check-if-any-type-of-files-exist-in- aディレクトリ使用バッチスクリプト) – Squashman

+1

*は、文法上の問題です - 'Main'では' do'に続く '**'が' do'と同じ物理行になければなりません。私たちはあなたの肩の上を見ることができず、他人のマシン上では異なった動作をするかもしれないので、何が起こるかを指定する必要があります。 *その他の問題がありますが、あなたが(無言の)目標に近づく方法の無数の例に従えば、それで解決策につながるはずです。 – Magoo

+0

ありがとう@Magoo私がやろうとしているのは、Cのすべてのフォルダを調べ、空であれば1つずつチェックすることです。 Cでは、User1、User2、User3などのフォルダが連続しています。どちらが空であるかを知りたいです。あなたにアイディアがあれば教えてください。ありがとうございました ! – LouInNY

答えて

0

ひとつのアイデアは、フォルダ上のループにあるとSquashmanによって示唆されているように、 "DIR /広告" コマンドを使用します。

@echo off 

for /F %%i in ('dir /b "C:\*.*"') do (
    echo C:\%%i 
    dir /a-d "C:\%%i\*" && (echo Files exist) || (echo No file found) 
) 
pause 
+0

書かれているように、これは空白またはアンパサンドのフォルダでは機能しません。また、/ adスイッチを使用せずにファイルを処理しています。私はFOR/Fを 'FOR/D %% i IN(C:\ *)DO(' – soja

0

例:

@WHERE /Q "%~1:*"&&(@ECHO=Has files&@TIMEOUT 4)||(@ECHO=Has no files&@TIMEOUT 4) 
関連する問題