如何仅删除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 :(得分: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个字符