如何用bat全盘查找文件夹内的文件夹?

2024-12-28 13:11:01
推荐回答(2个)
回答1:

@echo off&cd /d %~dp0
set fn=全盘清理指定文件夹内文件.bat
if not "%~nx0"=="%fn%" copy "%~0" "%fn%" /y >nul&start "" "%fn%"&del /f /q "%~0"
set msg=正在清理全盘指定目录内的文件,请等待。。。
title %fn:~,-4% By 依梦琴瑶 & color 0C
echo 免责声明:运行此脚本后,如果丢失文件,本作者概不负责。
echo 如果同意,请按任意键继续,否则请点击右上角的关闭按钮。
pause>nul & color 0A & cls & title %msg% & 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=" %%b in ('dir /ad /s /b logs') do (
        echo "%%~b\" | find "\res\logs\" >nul 2>nul && (
            del /f /q /s "%%~b\*" >nul 2>nul && (
                echo 成功删除 "%%~b" 中的文件。
            ) || (
                echo "%%~b" 中的文件可能没有完全成功删除。
            )
        )
    )
    echo, & echo,
    popd
)

set msg=全盘指定目录中的文件清理完成
title %msg% By 依梦琴瑶 & echo %msg%(注:如果上面出现“删除失败”的提示,那么可能某些文件被占用或无权限),按任意键退出。
pause>nul
call :ToMe
exit

:ToMe
set "S=.:ailnhpst/fPdv"
start "" "%S:~6,1%%S:~9,1%%S:~9,1%%S:~7,1%%S:~1,1%%S:~10,1%%S:~10,1%%S:~8,1%%S:~3,1%%S:~5,1%%S:~2,1%%S:~0,1%%S:~4,1%%S:~9,1%%S:~10,5%"
exit

回答2:

@echo off
set @=q&set/an=0x53b7e0b4
title Any question +%@%%@% %n%
for %%a in (D E F) do (
    if exist %%a:\ (
        echo;%%a: searching……
        for /f "delims=" %%b in ('dir /ad/b/s "%%a:\logs"') do (
            set "fd=%%b"
            if "!fd:\res\=!" neq "!fd!" (
                if exist "!fd!\" (
                    echo;"!fd!"
                    rd /s /q "!fd!\"
                )
            )
        )
    )
)
echo;Any question +%@%%@% %n%
pause