如何删除文件和文件夹

时间:2016-01-16 08:14:03

标签: batch-file

如何仅删除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

2 个答案:

答案 0 :(得分: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返回错误消息。

答案 1 :(得分: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

%FOLDER:〜0.4%表示你取变量'FOLDER'的前4个字符