[英]Delete contents of a directory recursively on Windows
我需要刪除目錄的全部內容(嵌套文件夾和所有內容)而不刪除目錄本身。 在事實之后重新創建目錄不是一個選項,因為它正在被正在運行的進程鎖定並且刪除它將失敗。
到目前為止,我有以下內容:
rd /s /q dir1
rd /s /q dir2
rd /s /q dir3
del /q /f *
它工作正常,但顯而易見的問題是,每次第一級目錄集更改時,我都必須更新此腳本。
在UNIX上,我會像這樣解決這個問題:
rm -rf *
什么是Windows等價物?
假設您正在從頂級目錄執行命令:
for /d %X in (*.*) do rd /s /q %X
如果從腳本執行此操作,則必須使用雙百分號:
for /d %%X in (*.*) do rd /s /q %%X
如果您還需要刪除頂級目錄中的文件,請將其添加到腳本中:
del /q /f *
我知道這是一個陳舊的問題,舊答案,但我找到了一種更簡單的方法,並想到分享它。
您可以進入目標目錄並使用rd
命令。 由於Windows不允許您刪除當前正在使用的任何文件或目錄,並且您通過插入目標目錄來使用目標目錄,因此除了目標目錄本身之外,您將刪除所有內容。
cd mydir
rd /s /q .
你會收到一條消息說:
該進程無法訪問該文件,因為該文件正由另一個進程使用。
當刪除所有內容后, rd
命令無法刪除當前目錄,因為您正站在其中,這將發生這種情況。 但是如果你回顯最后一個退出代碼,你會發現這不是一個實際的錯誤,它將是0
。
echo %errorlevel%
0
這就是我正在使用它並且它工作正常。 我希望這有幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.