批处理,删除含有关键字的文件及目录
转载 https://blog.csdn.net/weixin_34148508/article/details/94558767
@echo off rem 如果是磁盘符,最好加上\符合 set DESC_PATH=D:\tx\WXSavePath\ rem 只需要部分字符 set file_str=rar set folder_str=尤克里里 rem 控制开关 set search_file=0 set search_folder=1 set del_flag=1 rem 临时文件,备份记录用,不用修改 set file_log=file.log set folder_log=folder.log set workspace=%CD% rem 只查找文件 if %search_file%==1 ( cd /d %DESC_PATH% rem 搜寻子目录,排除文件夹 dir /b /s /a-d | find "%file_str%" > %workspace%\%file_log% ) rem 只查找目录 if %search_folder%==1 ( cd /d %DESC_PATH% rem 目的:希望不统计文件在内 dir /b /s /a-a | find "%folder_str%" > %workspace%\%folder_log% ) rem 待考虑引入输入判断yes or no 决定是否删除,这样更人性 echo. && echo. && echo 符合条件的文件及目录已经记录到 %workspace%\%file_log% 和 %folder_log%, 点击查看。 ... echo. && echo. && echo 回车键后将删除查找到的文件及目录 && pause>nul rem 命令少了"delims="参数,将语句改一改: rem for /f "delims=" %%i in ('dir /s/b/a *.doc') do copy "%%i" d:\wukgd cd /d %workspace% if %del_flag%==1 ( if %search_file%==1 ( for /f "delims=" %%i in (%workspace%\%file_log%) do ( if exist %%i del %%i ) ) if %search_folder%==1 ( for /f "delims=" %%i in (%workspace%\%folder_log%) do ( if exist %%i rd /s /q "%%i" ) ) ) cd /d %workspace% echo. && echo. && echo 符合条件的文件及目录删除完毕 && pause>nul