2016-01-16 285 views
0

如何刪除僅以2015和2014開頭的文件或文件夾?如何刪除文件和文件夾

這是我迄今爲止,它會刪除下C:\Temp文件夾中的所有文件和文件夾

@TITLE = 
@ECHO ON 

SET Folder="C:\Temp" 

CD /D %folder% 

FOR /F "Delims=" %%i IN ('DIR /B') DO (rmdir "%%i" /S/Q || DEL "%%i" /S/Q) 

PAUSE 
+0

'del/f/s 2015 *'後面跟着'del/f/s 2014 *'也許? (在C:/ temp中時) –

+4

'dir'可以與通配符一起工作:'for ...('dir/b 2014 * 2015 *')...''也可以'/ s'。 – Stephan

+0

@Stephan, - 感謝它的工作 – 0m3r

回答

1

您可以使用for循環遍歷目錄樹; for /R /D枚舉所有子目錄遞歸和for /R返回文件:

pushd "C:\Temp" 
for /R /D %%I in ("2014*" "2015*") do (
    rmdir /Q "%%~fI" 
) 
for /R %%I in ("2014*" "2015*") do (
    del /Q "%%~fI" 
) 
popd 

或者你讓dir /B /S回報所有項目,文件和目錄,並解析其輸出與for /F循環:

pushd "C:\Temp" 
for /F "eol=| delims=" %%I in (' 
    dir /B /S "2014*" "2015*" 
') do (
    2> nul rmdir /Q "%%~fI" || del /Q "%%~fI" 
) 
popd 

2>nul重定向如果當前項目是文件,則避免錯誤消息由rmdir返回。

0
@TITLE = 
@ECHO ON 
SET Folder="C:\Temp" 
CD /D %folder% 
FOR /F %%I IN ('DIR /B') DO (
    SET FOLDER=%%I 
    SET FOLDER=%FOLDER:~0,4% 
    IF %FOLDER% == 2015 GOTO Delete 
    IF %FOLDER% == 2014 GOTO Delete 
    GOTO End 
    :Delete 
    RMDIR "%%I" /S /Q || DEL "%%I" /S /Q 
    :End 
) 
PAUSE 

%文件夾:〜0.4%,意味着你採取的第4變量'FOLDER'的字符

+4

'goto'和標籤內的'for'循環?這不會運行。 – Stephan

相關問題