2011-07-26 62 views
99

我想要一個批處理文件,它將刪除我的無線工具箱的緩存文件夾中的所有文件夾和文件。批處理文件。刪除目錄中的所有文件和文件夾

目前,我有以下幾點:

cd "C:\Users\tbrollo\j2mewtk\2.5.2\appdb\RMS" 
del *.db 

這將刪除我的RMS目錄中的所有db文件,但是我想從這個目錄

你能不能幫我刪除的每一件事情?謝謝。

+3

型'。 del /?'在提示符下。它會爲您提供如何使用該工具的信息。對於這種情況,'del *。*/s'可以工作**,但不要在錯誤的目錄中執行!** –

+29

'rmdir/s/qc:\ users \ tbrollo \ j2mewtk \ 2.5.2 \ appdb \ RMS' – forsvarir

+0

謝謝forsvarir。 – user69514

回答

38

del *.*而不是del *.db。這將刪除一切。

+37

注意:如果你想繞過「你確定要刪除...」提示你需要添加/ FQ標誌:'德爾。/F/Q' – Rhyuk

+28

這隻會刪除文件 - 不是文件夾 – icc97

+28

這不應該被標記爲正確的答案,因爲它不會刪除文件夾(如問題中所述)。 –

5

試試這個,它爲我工作,我有轉儲數據在我的「C:\ tmp目錄」應用程序文件夾&以下工作最適合我,它甚至不問是或否來刪除數據,我已經作出了計劃爲它每5分鐘

cd "C:\tmp" 

del *.* /Q 
+3

如果文件夾「C:\ tmp」不存在(如果您或其他應用程序刪除了該文件夾),並且您嘗試運行該文件夾,是不是會從「C:\」內的其他文件夾刪除數據? (它發生在我身上) – Vikram

+4

Vikram注意到:1)這是非常危險的,2)它不會刪除問題中所述的子目錄。 –

+2

除了文件夾的東西......你可以做'del/q c:\ tmp \ *。*',這是大約一百萬倍的安全。更不用說'cd'只會改變路徑,而不是驅動器。 – Nyerguds

25
IF EXIST "C:\Users\tbrollo\j2mewtk\2.5.2\appdb\RMS" (
    rmdir "C:\Users\tbrollo\j2mewtk\2.5.2\appdb\RMS" /s /q 
) 

這將刪除一切從文件夾(文件夾本身)後運行。

+9

我認爲這個問題是關於清空所有內容的目錄,而不是刪除目錄本身。 –

127

創建一個批處理文件文本下方

複製到批處理文件

set folder="C:\test" 
cd /d %folder% 
for /F "delims=" %%i in ('dir /b') do (rmdir "%%i" /s/q || del "%%i" /s/q) 

將刪除所有文件和文件夾

+4

太棒了,我一直在尋找一些東西來清理每月批量作業的文件和文件夾,並且這樣做的確有用。 –

+5

在執行此操作之前,請確保目錄已存在。 –

+2

如果你在你的文件名「特殊」人物,首先做'CHCP 10000'改變編碼設置爲UTF-16 – Demelziraptor

2

更重要的是,讓我們說我想下的c刪除一切:\ windows \ temp文件夾。

@echo off 
rd c:\windows\temp /s /q 
+10

那個r emoves目錄'c:\ windows \ temp'。我不認爲這是原來的問題。 –

+0

刪除目錄似乎對我來說是最簡單的,如果以後需要重新創建它,我可以。有一個問題可能是特殊文件夾權限丟失。但是,這似乎比其他大多數答案更容易。 – madannes

+0

可悲的是,刪除和批處理腳本立即重新創建似乎給隨機「拒絕訪問」錯誤,在Win10 ... – Nyerguds

9

del *.*只會刪除文件,而不能刪除子目錄。核彈攻擊一個目錄的內容,你可以使用這個腳本:

@echo off 
setlocal enableextensions 
if {%1}=={} goto :HELP 
if {%1}=={/?} goto :HELP 
goto :START 

:HELP 
echo Usage: %~n0 directory-name 
echo. 
echo Empties the contents of the specified directory, 
echo WITHOUT CONFIRMATION. USE EXTREME CAUTION! 
goto :DONE 

:START 
pushd %1 || goto :DONE 
rd /q /s . 2> NUL 
popd 

:DONE 
endlocal 
+3

我困惑了這是怎樣工作了一點點,以便爲其他人的解釋:該PUSHD變化成您要刪除其子目錄。然後,當rd要求刪除當前目錄和所有子目錄時,刪除子目錄會成功,但刪除當前目錄失敗 - 因爲我們在其中。這產生了2> NUL吞嚥的錯誤。 (2是錯誤流)。非常狡猾的斯圖爾特先生! – Kinetic

+0

哦,「setlocal enableextensions」打開了同時將當前目錄推入堆棧並更改目錄的功能。這似乎只是在XP之前需要的,因爲那裏和之後它默認爲On。 – Kinetic

2

你可以使用ROBOCOPY鏡像一個空文件夾到你正在清理文件夾。

robocopy "C:\temp\empty" "C:\temp\target" /E /MIR 

如果您無法刪除或重新創建實際文件夾,它也可以使用。

它確實需要一個現有的空目錄。

+0

根據robocopy的幫助,'/ MIR :: MIRror是一個目錄樹(相當於/ E plus/PURGE)。「 - 所以我相當肯定'/ E'是多餘的。 – Nyerguds

9

只是把這個一起從什麼morty346發佈:

set folder="C:\test" 
IF EXIST "%folder%" (
    cd /d %folder% 
    for /F "delims=" %%i in ('dir /b') do (rmdir "%%i" /s/q || del "%%i" /s/q) 
) 

添加一個快速檢查,在變量定義的文件夾先存在,然後改變目錄到文件夾,並刪除內容。

+0

所以,快速提示 - 如果嘗試在網絡路徑上運行此操作,即使使用「IF EXIST」語句,它也將無法設置文件夾,並且語句將記錄在cmd提示符中「UNC路徑不支持,默認到Windows目錄「,那麼它將嘗試刪除您的Windows目錄中的所有內容。所以要小心。 – CBRF23

4
set "DIR_TO_DELETE=your_path_to_the_folder" 

IF EXIST %DIR_TO_DELETE% (
    FOR /D %%p IN ("%DIR_TO_DELETE%\*.*") DO rmdir "%%p" /S /Q 
    del %DIR_TO_DELETE%\*.* /F /Q 
) 
+0

非常感謝,它像一個魅力。 – TuanDPH

0

只是https://stackoverflow.com/users/478183/morty346答案

set folder="C:\test" 
cd /D %folder% 
if NOT %errorlevel% == 0 (exit /b 1) 
echo entire content of %cd% will be deleted, press Ctrl-C to abort 
pause 
REM first the directories /ad option of dir 
for /F "delims=" %%i in ('dir /b /ad') do (echo rmdir "%%i" /s/q) 
REM now the files /a-d option of dir 
for /F "delims=" %%i in ('dir /b /a-d') do (echo del "%%i" /q) 
REM to deactivate simulation mode remove the word echo before rmdir and del 
-1
@echo off 
@color 0A 

echo Deleting logs 

rmdir /S/Q c:\log\ 

ping 1.1.1.1 -n 5 -w 1000 > nul 

echo adding log folder back 

md c:\log\ 

你是在正確的軌道上的修改版本只需添加一個代碼添加再次刪除的文件夾

0

使用

set dir="Your Folder Path Here" 
rmdir /s %dir% 
mkdir %dir% 

這個版本中刪除不問:

set dir="Your Folder Here" 
rmdir /s /q %dir% 
mkdir %dir% 

例子:

set dir="C:\foo1\foo\foo\foo3" 
rmdir /s /q %dir% 
mkdir %dir% 

這將清除C:\foo1\foo\foo\foo3

我想提@Abdullah Sabouin與這個答案https://stackoverflow.com/a/44578851/8238944。關於我模仿他,有一種混淆。我沒有注意到他的帖子。

我想感謝@melpomene指出錯誤!

+0

這根本不起作用。如果'foo'不是空目錄,'rmdir foo'出錯。 – melpomene

+0

@melpomene我發現了錯誤,應該修復! –

+0

現在它與Abdullah Sabouni的回答完全相同。 – melpomene

0

不能刪除一切與任何rmdirdel獨自:

  • rmdir /s /q不接受通配符PARAMS。所以rmdir /s /q *將會報錯。
  • del /s /f /q將刪除所有文件,但空的子目錄將保留。

我首選的方案(因爲我在很多其他的批處理文件已經使用)是:

rmdir /s /q . 2>NUL 
0

如果要在運行這個命令來刪除所有文件刪除*

+1

與從7月26日在21:04接受的答案相同。當你沒有新的東西時請不要添加答案。 – Stephan

相關問題