发布网友 发布时间:2022-04-24 12:10
共2个回答
热心网友 时间:2023-10-12 08:56
@echo off
setlocal enabledelayedexpansion
set p="e:\123"
set "l=500"
set "m=SSAA"
set "g=backup_"
echo 你设定的处理目录为%p%
echo 你设定的文件夹大小为"%l%mb"
echo 你设定的文件夹前缀名为"%m%"(区分大小写)
echo 文件夹改名前缀:"%g%"
echo ...
echo 正在查找%p%目录下的以%m%开头的文件夹:
pushd %p%
for /f "tokens=*" %%i in ('dir/b/ad^|findstr "\<%m%.*"') do (
for /f "tokens=3" %%j in ('dir/s "%%i"^|findstr "个文件"') do set a=%%j & set /a b=!a:,=!/1024/1024
if !b! geq %l% (
echo .
echo ..
echo ...
echo "%%i"文件夹大小约为!b!mb,大于你设定的%l%mb,如何处理?
echo 【1】 :删除
echo 【其他任意键】:改名
set/p "o=请选择: "
if "!o!"=="1" (rd "%%i"/s/q & echo 删除成功) else ren "%%i" %g%"%%i" &echo 改名成功,新文件夹名字为"%g%%%i"
) else rd "%%i"/s/q & echo "%%i"文件夹大小约为!b!mb,小于你设定的%l%mb,已删除)
)
echo .
echo ..
echo ...
echo 命令执行完成
pause
热心网友 时间:2023-10-12 08:57
@echo off&setlocal enabledelayedexpansion
set /a use=500*1
set "dst=e:\bak\"
::上一句指定文件夹
set "str=ssaa"
::上一句指定查找以字符开头的文件夹
cd /d "!dst!"
>%temp%\tmp.vbs echo result = wscript.arguments(0)/1024/1024
>>%temp%\tmp.vbs echo Wscript.Echo int(result)
for /d %%a in (!str!*) do (
set "dname=%%a"
pushd.
cd /d "%%a"
for /f "tokens=3" %%j in ('dir /-c/s^|find "个文件"') do set num=%%j
if not "%%j"=="0" (
for /f "delims=" %%n in ('cscript //nologo %temp%\tmp.vbs !num!') do (
set numm=%%n
if %%n lss !use! (
call :sc
) else (
echo %%a目录占用大于等于!use!M
call :ch
))))
del %temp%\tmp.vbs
pause
exit /b
:ch
set id=
set /p id=请选择(1、改名 or 2、删除,默认为1):
if "%id%"=="2" (goto :sc) else goto :renn
goto :eof
:sc
echo 目录%dname%共占用约%numm%M,正在删除...
popd
rd /s /q "%dname%"
goto :eof
:renn
set renname=
set /p renname=输入重命名的名称:
if exist "..\%renname%" (echo 已有%renname%目录&goto renn)
popd
ren "%dname%" "%renname%"
goto :eof