2014-02-18 75 views
1

我想寫一個非常簡單的小批處理腳本來確定目錄是否包含任何有效的文件,如果它然後GOTO複製命令或完成。然而,即使當我知道目錄T:是空的,以下內容仍然認爲那裏有一個文件。它可能是一些隱藏或系統文件,我怎麼能忽略這些文件?批處理文件 - 如果存在*。*

IF EXIST T:\*.* goto STAGE1 
goto FINISH 

我已經適應這是專門找* .txt文件,但是我不能確定新的文件將永遠是一個特別的類型,因此我需要劇本來尋找任何類型的文件前一個批處理文件。有沒有我可以使用的開關?

回答

1
dir /a-d "t:\*.*" >nul 2>nul && goto stage1 || goto finish 

如果dir命令沒有找到指定的文件(我排除了子文件夾),它將設置錯誤級別1。如果沒有錯誤級別轉到階段1,否則,轉至完成

編輯 - 爲了處理子目錄的情況下,不包括隱藏的人

dir /a-d "t:\" >nul 2>nul && goto stage1 
for /d /r "t:\" %%a in ("*") do (dir /a-d "%%~fa\*" >nul 2>nul && goto stage1) 
goto finish 

將開始檢查指定的文件夾中,如果沒有找到文件,重複前面命令用於遞歸列表中的每個目錄。如果找到任何文件,則轉到stage1。如果命令完成並且下一行到達,則轉到完成。

+0

直到客戶更改了目標帖子並決定刪除該目錄中的文件夾,纔開始工作。我將如何包含子文件夾選項? (不包括系統文件夾) – SuperSub

+0

@SuperSub,「系統文件夾」是什麼意思? –

+0

隱藏的文件夾。 – SuperSub