批处理实现递归删除指定路径下的指定目录或文件。
@echo off rem rr.bat(Recursive Remover). rem t0nsha@20090730_2313<liaodunxia#gmail.com> SETLOCAL EnableDelayedExpansion SET WRK_DIR=%1 SET RM_TYPE=%2 SET RM_NAME=%3 IF "%RM_NAME%"=="" GOTO :USAGE IF "%RM_TYPE%" == "-d" ( SET RM_ACTN=RD /S/Q ) ELSE IF "%RM_TYPE%" == "-f" ( SET RM_ACTN=DEL ) ELSE ( GOTO :USAGE ) FOR /R %WRK_DIR% %%R IN (.) DO ( SET RM_PATH=%%R rem drop the last dot. SET RM_PATH=!RM_PATH:~0,-1! IF %RM_TYPE% == -d ( FOR /F "usebackq delims==" %%D IN (`dir /a:d/b %%R`) DO ( IF "%%D" == "%RM_NAME%" ( ECHO %RM_ACTN% "!RM_PATH!%%D" %RM_ACTN% "!RM_PATH!%%D" ) ) ) ELSE IF %RM_TYPE% == -f ( FOR /F "usebackq delims==" %%F IN (`dir /a:-d/b %%R`) DO ( IF "%%F" == "%RM_NAME%" ( ECHO %RM_ACTN% "!RM_PATH!%%F" %RM_ACTN% "!RM_PATH!%%F" ) ) ) ) EXIT /B 0 :USAGE ECHO Recursive remove directory or file. ECHO rr path {-d directory ^| -f filename} ECHO. ECHO path Specifies the search path. ECHO -d directory Remove directory. ECHO -f filename Remove file.
本文介绍了一个批处理脚本,用于递归地删除指定路径下的目录或文件。该脚本支持两种操作模式:删除目录(-d)和删除文件(-f)。通过参数配置,可以在不同的环境中灵活使用。
2万+

被折叠的 条评论
为什么被折叠?



