假設有一個名爲%pathtofolder%
的變量,因爲它表明它是文件夾的完整路徑。如何在Windows的命令提示符下刪除特定目錄中的文件/子文件夾
我想刪除此目錄中的每個文件和子文件夾,但不是目錄本身。
但是,可能會出現像'此文件/文件夾已被使用'的錯誤...發生這種情況時,應該繼續並跳過該文件/文件夾。
任何人都可以爲我提供一些指令嗎?
假設有一個名爲%pathtofolder%
的變量,因爲它表明它是文件夾的完整路徑。如何在Windows的命令提示符下刪除特定目錄中的文件/子文件夾
我想刪除此目錄中的每個文件和子文件夾,但不是目錄本身。
但是,可能會出現像'此文件/文件夾已被使用'的錯誤...發生這種情況時,應該繼續並跳過該文件/文件夾。
任何人都可以爲我提供一些指令嗎?
你可以使用這個shell腳本來清理文件夾和文件中C:\Temp
source:
del /q "C:\Temp\*"
FOR /D %%p IN ("C:\Temp\*.*") DO rmdir "%%p" /s /q
創建一個包含上述命令的批處理文件(比如delete.bat)。轉到delete.bat文件所在的位置,然後運行命令:delete.bat
del %pathtofolder%\*.* /s /f /q
刪除所有文件和子文件夾在%pathtofolder%,包括只讀文件,不提示確認
對此我留下了%pathtofolder%中的空子文件夾。 – 2011-12-15 09:29:08
它不會刪除%pathtofolder%中的子文件夾。如此糟糕,我沒有聲望投下這個虛假答案 – 2012-07-03 13:49:04
正如Vitalii Korsakov所指出的那樣,這會從子目錄中刪除所有文件和文件,但將子目錄留在OP問及如何刪除的地方。 – 2012-10-16 20:38:10
我能想到的最簡單的辦法是用
RD /S /Q folderPath
然後再創建這個目錄中刪除整個目錄:
MD folderPath
如果您刪除但不創建新文件夾的權限?我希望它有可能:) – Sandy 2013-02-01 15:13:34
這是一個不好的解決方案,因爲它在目錄節點的文件系統上引入了一個競爭,即如果在之後立即執行第二個命令可能會失敗。 – 2013-11-12 17:10:11
此外,如果目錄具有特殊權限,那麼解決方案很糟糕* ahem *(whoops) – 2015-04-22 10:32:56
可以使用下面的命令來刪除所有內容做的,父文件夾本身:
RMDIR [/S] [/Q] [drive:]path
該命令會刪除文件夾本身。 – Baz 2013-07-18 21:58:30
@Baz:你說得對。對不起,我錯了。我已更正 – 2013-07-19 03:30:50
這將刪除文件夾和文件並離開後面的文件夾。
pushd "%pathtofolder%" && (rd /s /q "%pathtofolder%" 2>nul & popd)
@ECHO OFF
Set dir=path-to-dir
Echo Deleting all files from %dir%
del %dir%\* /F /Q
Echo Deleting all folders from %dir%
for /d %%p in (%dir%\*) Do rd /Q /S "%%p"
@echo Folder deleted.
exit
...刪除所有文件和指定目錄下的文件夾,而不是目錄本身。
CD [Your_Folder]
RMDIR /S /Q .
您會收到一條錯誤消息,告訴您RMDIR命令無法訪問當前文件夾,因此無法刪除它。
更新:
從this有用的評論(感謝Moritz Both),您可以添加&&
之間,所以如果CD
命令失敗RMDIR
將無法運行(例如輸入錯誤的目錄名):
CD [Your_Folder] && RMDIR /S /Q .
從Windows Command-Line Reference:
/S:刪除一個目錄樹(指定的目錄及其所有子目錄 ,包括所有文件)。
/問:指定安靜模式。 刪除目錄樹時不提示確認。 (請注意,只有/ s是指定的 時才起作用。)
RD代表REMOVE目錄。
/S:除了文件夾本身之外,還刪除所有文件和子文件夾 。 使用此選項刪除整個文件夾樹。
/Q:安靜 - 不顯示YN確認
例子:
RD /S /Q C:/folder_path/here
upvoted是唯一解釋'/ S'和'/ Q'是什麼意思的意思 – CodeBurner 2017-03-24 11:11:22
No.'rd'相當於'rmdir',它將刪除目錄本身,而不是OP所要的。 – FaithReaper 2017-06-22 09:26:01
要刪除文件:
del PATH_TO_FILE
與所有文件刪除文件夾,在其中:
rmdir /s /q PATH_TO_FOLDER
從特定文件夾刪除所有文件(不刪除文件夾本身)有點複雜。 del /s *.*
無法刪除文件夾,但會從所有子文件夾中刪除文件。因此需要兩個命令:
del /q PATH_TO_FOLDER\*.*
for /d %i in (PATH_TO_FOLDER\*.*) do @rmdir /s /q "%i"
是的,這是正確的。必須是兩個步驟。這值得讚賞,因爲它解釋了爲什麼,與上面更多的投票答案相比。 – FaithReaper 2017-06-22 09:27:27
我使用PowerShell
Remove-Item c:\scripts\* -recurse
它將刪除該文件夾的內容,而不是文件夾本身。
rhellem的答案是最近的,但它是唯一的答案,將實際爲我做這個。 (Win 8.1,而不是選擇) – philologon 2017-02-05 00:29:45
從批處理命令行:'powershell -Command「Remove-Item'PathToMyDirectory \ *'-Recurse -Force」' – 2017-02-16 14:37:48
@ECHO OFF
rem next line removes all files in temp folder
DEL /A /F /Q /S "%temp%\*.*"
rem next line cleans up the folder's content
FOR /D %%p IN ("%temp%\*.*") DO RD "%%p" /S /Q
使用記事本創建文本文檔和複製/粘貼此:
rmdir /s/q "%temp%"
mkdir "%temp%"
選擇另存爲,文件名:
delete_temp.bat
另存爲鍵入:所有文件,然後單擊保存按鈕。
工作在任何類型的帳戶(管理員或標準用戶),只需運行它! 在這個例子中我使用了temp變量,但你可以使用任何其他的!附:僅適用於Windows操作系統!
[deltree發生了什麼以及它的替代物是什麼?](http://stackoverflow.com/questions/338895/what-ever-happened-to-deltree-and-whats-its-replacement) – 2017-02-16 14:35:10