2016-10-05 30 views
-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-directory-using-batch-script) – Squashman

+1

*是一個語法問題 - 在'Main'中,'('跟在'do' **之後'必須與'do'在同一條物理線上。你應該指定發生了什麼事情,因爲我們看不到你的肩膀,它可能在別人的機器上有不同的表現。 *有*其他問題,但遵循無數的例子來說明如何處理您在SO上提供的(未說明的)目標應該引導您找到解決方案。 – Magoo

+0

Thanks @Magoo我想要做的是通過C中的所有文件夾,並檢查一個接一個,如果有空。在C中,我有一系列文件夾:User1,User2,User3等。我想知道哪一個是空的,哪一個不是。如果您有任何想法,請告知我。謝謝 ! – LouInNY

回答

0

一個想法是在文件夾循環,並使用 「目錄/廣告」 命令,建議通過Squashman:

@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) 
相關問題