2011-03-31 192 views
22

早於10天我要創建哪些應該刪除其年齡超過10天,使用Windows 7批處理文件,刪除文件夾在Windows 7

任何幫助,將不勝感激文件夾的所有子文件夾的批處理文件。

+0

請清楚:是否要刪除所有超過10天的文件夾或單個文件夾*如果它早於10天..? – Blorgbeard 2011-03-31 08:43:22

+0

刪除所有超過10天的文件夾例如:在D:/ Test下應該刪除10天以下的文件夾,而不是新創建的文件夾。 – nilesh 2011-03-31 08:59:16

+0

[刪除30天以前的子目錄]可能的副本(http://stackoverflow.com/questions/3419091/delete-sub-directories-old-than-30-days) – Blorgbeard 2011-03-31 09:07:08

回答

39

this answer to a very similar question改編:

FORFILES /S /D -10 /C "cmd /c IF @isdir == TRUE rd /S /Q @path" 

您應該從d:\study文件夾中運行此命令。它會刪除所有超過10天的子文件夾。

rd之後的/S /Q使得它在不提示的情況下即使它們不是空的也刪除文件夾。

我建議你把上面的命令放到一個.bat文件中,並保存爲d:\study\cleanup.bat

+0

我使用了這個命令,並且這些文件夾已被刪除。 但我得到一個錯誤:錯誤:系統找不到指定的文件。 我需要退出error_level = 0 – 2015-08-04 12:26:18

+3

我不認爲你會需要FORFILES/S選項,因爲子目錄刪除將通過RD/S選項。 – dmachop 2015-10-09 15:10:10

0

如果你想使用它的參數(即刪除指定目錄下的所有子目錄),然後把這個兩行成* .bat或* .cmd文件:

@echo off 
for /f "delims=" %%d in ('dir %1 /s /b /ad ^| sort /r') do rd "%%d" 2>nul && echo rmdir %%d 

,並添加腳本 - PATH環境變量的路徑。在這種情況下,你可以從任何位置調用你的批處理文件(我想UNC路徑也應該起作用)。

例如:

YourBatchFileName c:\temp 

(你可以使用引號如果需要的話)

將刪除在c所有空子目錄:\ temp文件夾

YourBatchFileName 

將刪除所有空子目錄在當前目錄下。

7

FORFILES /S /D -10 /C "cmd /c IF @isdir == TRUE rd /S /Q @path"

我不能讓Blorgbeard的建議的工作,但我能得到它與RMDIR,而不是RD工作:

FORFILES /p N:\test /S /D -10 /C "cmd /c IF @isdir == TRUE RMDIR /S /Q @path"

由於RMDIR不會刪除不爲空的文件夾所以我最終還是使用這段代碼刪除了超過10天的文件,然後刪除了超過10天的文件夾。

FOR /d %%K in ("n:\test*") DO (

FOR /d %%J in ("%%K*") DO (

FORFILES /P %%J /S /M . /D -10 /C "cmd /c del @file"

)

)

FORFILES /p N:\test /S /D -10 /C "cmd /c IF @isdir == TRUE RMDIR /S /Q @path"

我用這個代碼吹掃出文件夾中的測試中n中的子文件夾(例如:\測試\ ABC \ 123會得到吹掃空當,但N:\測試\ ABC不至於太吹掃

相關問題