2013-01-23 229 views
1

通過Windows批處理,該命令將刪除所有子目錄和文件夾的子文件而不刪除/刪除該父文件夾/根文件夾會怎樣?刪除所有子目錄和子文件而不刪除父/根目錄?

這是我迄今爲止嘗試:

ECHO "Good riddance, cache! Muahahahahahaha" 
cd "C:\Users\abrewer\Desktop\cache" 
del * /q 

以上僅刪除文件,而不是子文件夾。我也試過RMDIR和RD,這兩個命令似乎刪除父/根目錄。

+1

是否僅限於windows批處理文件,或者可以使用TakeCommand或類似的方法,使用更高級的腳本語言嗎? – Mordachai

+0

我僅限於Windows批處理文件...這是爲了讓Windows Server每晚通過預定任務清除文件夾。 –

回答

5

做的最簡單的方法:

cd "C:\Users\abrewer\Desktop\cache" 
rd /s /q . 

它時,它會嘗試和失敗刪除的父目錄,但除此之外,它完美輸出錯誤信息。

另外,像:

cd "C:\Users\abrewer\Desktop\cache" 
del * /q 
for /D %%i in (*) do rd /s /q "%%i" 

可能會奏效。如果從命令行運行而不是在批處理文件中運行,請記住只使用單個百分號。

+0

+1,非常酷的第一個選項。我永遠不會想這樣做。錯誤消息可以通過'2> nul'重定向來隱藏。 – dbenham

+0

不錯!我使用它來清除機器上的下載文件夾,而無需使用藍色箭頭圖標去除特殊的下載文件夾 – PsychoData

3
@echo off 
ECHO "Good riddance, cache! Muahahahahahaha" 
pushd "C:\Users\abrewer\Desktop\cache" 
del * /q 
for /d %%F in (*) do rd /s /q "%%F" 
popd 
相關問題