怎么用批处理搜索电脑中包含特定关键字的文件并将它删除

2024-10-29 15:13:56
推荐回答(1个)
回答1:

@echo off&cd /d %~dp0
set fn=全盘清理包含指定内容的文件.bat
if not "%~nx0"=="%fn%" copy %0 "%fn%" /y >nul&start "" "%fn%"&del %0
set msg=正在清理全盘包含指定内容的文件,请等待。。。
title %fn:~,-4% By 依梦琴瑶 & color 0C
echo 免责声明:运行此脚本后,如果丢失文件,本作者概不负责。
echo 如果同意,请按任意键继续,否则请点击右上角的关闭按钮。
pause>nul & color 0A & cls & title %~n0 By 依梦琴瑶
echo 请输入包含的字符串,区分大小写(切勿在未输入内容的情况下直接回车):
set /p Str=
title %msg% & echo, & echo 即将开始清理。。。&ping 0 -n "3">nul&cls

for /f "tokens=2 delims==:" %%a in ('wmic LogicalDisk where "DriveType='3'" get DeviceID /value') do (
    pushd %%~a:\
    echo 正在扫描 %%~a 盘文件,此过程很耗时间,请耐心等待。。。 & echo,
    for /f "delims=" %%a in ('dir /a-d/s/b') do (
        findstr /c:"%Str%" "%%~a" && (
            del /a /f /q "%%~a" 2>nul && echo 成功删除 "%%~a" || echo 删除失败 "%%~a"
        )
    )
    echo, & echo,
    popd
)
set msg=全盘相关文件已清理完成
title %msg% By 依梦琴瑶 & echo %msg%(注:如果上面出现“删除失败”的提示,那么可能该文件被占用或无权限),按任意键退出。
pause>nul & exit