2010-11-03 127 views
0

請問下列問題,請幫助我嗎? 很多時候我必須做同樣的任務,即從一個目錄中刪除幾乎所有的文件 - 除了其中的兩個文件(比如1st.file和2nd.file)之外的所有文件。 我發現多個解決方案如何從目錄中刪除所有內容,但不知道如何解決這個問題。 你能指出在哪裏可以找到解決方案嗎?Windows bat文件 - 從目錄中刪除

+0

我不完全理解你的問題。你能提供一些細節嗎? – Dennis 2010-11-03 09:17:23

回答

0

用您的文件替換DONOTDELETE.ME,該文件不會被刪除。

@echo off 
for /r . %%a in (*.*) do (
    IF NOT "%%~nxa" == "DONOTDELETE.ME" (
     DEL "%%a" ) 
) 

你也可以只做到attrib -r有問題的文件然後再刪除只讀標誌,像這樣:

@echo off 
cd \myFiles 
attrib myFiles\DONOTDELETE1.ME +r 
attrib myFiles\DONOTDELETE2.ME +r 
del myFiles\*.* /q /s /a-r 
attrib myFiles\DONOTDELETE1.ME -r 
attrib myFiles\DONOTDELETE2.ME -r 
for /f %%a in ('dir myFiles/ad /b') do echo rd myFiles\%%a /q/s 
+0

謝謝,它的工作原理。 – Lormitto 2010-11-04 08:19:12

+0

謝謝,它的工作原理。 親切的問候 – Lormitto 2010-11-04 08:19:45

+1

Consdider用答案左邊的複選標記標記答案。 – 2010-11-04 08:48:41

0

像這樣的東西可能會讓你開始。

@ECHO OFF 
SET RemoveFolder=C:\Temp 

MV %RemoveFolder%\1st.file 1st.file 
MV %RemoveFolder%\2nd.file 2nd.file 
RD /S /Q %RemoveFolder% 
IF NOT EXIST %RemoveFolder% MD %RemoveFolder% 
MV 1st.File %RemoveFolder% 
MV 2nd.File %RemoveFolder% 

SET RemoveFolder= 
0

這是一個小的hackish,但你可以只改變的屬性您不想刪除的文件...然後在調用擦除時排除所有具有該屬性的文件。

調用follwing這樣的: TestDelete.Bat 「C:\ DeleteAllFilesExcept」,LeaveFile1.txt,LeaveFile2.txt

ATTRIB +H %2 
ATTRIB +H %3 

erase %1 /A-H 

ATTRIB -H %2 
ATTRIB -H %3 

當然,如果你打算刪除隱藏文件,這將不起作用從目錄中。