2013-06-28 61 views
0

我現在正在嘗試自己在Windows batch programming。到目前爲止這麼好,我可以很好地弄清楚如何刪除x天以前的空目錄和文件。問題是,如果我開始刪除空目錄,並且我們假設該過程只運行一次,則在當前工作目錄具有這樣的結構的情況下總是會留下新的空文件夾:如何獲得當前工作目錄的最大目錄深度

Empty Folder 

    Empty Folder 

      Empty Folder 

       Empty Folder 

Folder 

Folder 

... 

在這種情況下,只有最後一個空文件夾將被刪除,但隨後又有一個空文件夾。爲此,我需要計算最大目錄深度(在這種情況下,3 - >因爲有三個子目錄結構)。如果我有這個深度,我可以運行刪除過程x(dir-depth)次。如何在Windows批處理編程中獲得目錄深度?

+0

是的,我已經遞歸刪除,但多數民衆贊成在正常的程序,這並沒有解決我的問題。如果你更深入地思考問題,你會注意到,這不是遞歸過程的問題,據我瞭解。 – LordTribual

+0

按相反順序對列表進行排序處理此問題 - Endoro在其答案中提供瞭解決方案。 – foxidrive

回答

5

試試這個:

for /f "delims=" %%a in ('dir /b /ad /s "root folder" ^| sort /r') do rd "%%~a" 
+0

^|是什麼意思 ?我是否必須將「根文件夾」替換爲運行腳本的文件夾?爲什麼你使用/ f而不是/ d ...我認爲/ f是用於文件而不是用於目錄。 – LordTribual

+0

我無法計算此命令。不知何故,cmd告訴我| |不能在該位置語法上使用。哪裏不對? – LordTribual

+1

@LordTribual命令有效。將''根文件夾''替換爲開始文件夾的路徑,例如。 '「D:\空文件夾」'並且不要刪除'^ |'。有關幫助,請在命令行輸入'help for'。 – Endoro

相關問題