帮忙写有个bat脚本 ,批处理删除不符合的子文件夹

桌面有个文件夹111 ,里面有很多子文件夹,要去掉如下这些不合要求的子文件夹
1. 0字节文件夹( 不是空文件夹,里面含有一些0字节的文件)
2 . 不含有.jpg 图片的文件夹
第2 点改一下 改成 :jpg图片少于4张的文件夹(不包含4张)

@echo off & title 批量删除不符合文件夹 By 依梦琴瑶
setlocal enabledelayedexpansion

for /d %%a in (*) do (
    if not exist "%%~a\*.jpg" (
        rd /s/q "%%~a"
    ) else (
        set Size=0
        for /f "delims=" %%b in ('dir /a-d/s/b "%%~a\*"') do set /a Size=Size+%%~zb
        if !Size! equ 0 rd /s/q "%%~a"
    )
)
pause


放在“文件夹111”里运行即可。

追问

你好,谢谢。测试了 一下 有些问题,可以删除空文件夹 ,但是不能删除只含3张以下图片的文件夹, 另外 我不想把脚本放在111里面, 想直接放在桌面上 可以吗?

追答

亲,你问题中一开始只说了删除不包含jpg图片的文件夹,可没说少于多少张也删除吧,这应该怪你自己没描述清楚吧!

@echo off & title 批量删除不符合文件夹 By 依梦琴瑶
setlocal enabledelayedexpansion

cd /d 文件夹111

for /d %%a in (*) do (
    set Size=0
    set JNum=0
    for /f "delims=" %%b in ('dir /a-d/s/b "%%~a\*" 2^>nul') do (
        set /a Size+=%%~zb
        if /i "%%~xb"==".jpg" set /a JNum+=1
    )
    if !Size! equ 0 (
        rd /s/q "%%~a"
    ) else (
        if !JNum! lss 4 rd /s/q "%%~a"
    )
)
pause

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答