Windows环境下批量删除文件夹内仅有1个/2个/*个文件的文件夹

1)若删除文件夹中仅有1个文件的

2)新建文本文档,另存为 "删除单文件的文件夹.bat" ,修改第二行路径,双击运行:

bash 复制代码
@echo off
chcp 65001 >nul
set "Root=D:\TestFolder"

:: 遍历一级子文件夹
for /d %%d in ("%Root%\*") do (
    setlocal enabledelayedexpansion
    set cnt=0
    :: 统计文件夹内文件数量
    for %%f in ("%%d\*.*") do set /a cnt+=1
    if !cnt! equ 1 (
        for %%f in ("%%d\*.*") do (
            move "%%f" "%Root%\"
        )
        rd "%%d"
        echo 已处理:%%d
    )
    endlocal
)
pause

若兼容删除1个文件 或 2 个文件 或 3个文件,可以改:

bash 复制代码
if !cnt! equ 1 or !cnt! equ 2 or !cnt! equ 3

考虑递归子文件夹,重名处理,可使用以下代码

bash 复制代码
@echo off
chcp 65001 >nul
setlocal enabledelayedexpansion

:: ==========在这里修改你的目标根目录==========
set "RootPath=D:\TestFolder"
:: ===========================================

call :ScanFolder "%RootPath%"
echo.
echo =================全部处理完成=================
pause
exit /b

:: 递归扫描文件夹子程序
:ScanFolder
set "CurDir=%~1"

:: 遍历当前目录下所有子文件夹
for /d %%d in ("%CurDir%\*") do (
    call :ScanFolder "%%d"
)

:: 统计当前文件夹内文件数量(不含子文件夹)
set FileCount=0
for %%f in ("%CurDir%\*.*") do set /a FileCount+=1

:: 判断:1/2/3个文件才处理
if !FileCount! geq 1 if !FileCount! leq 3 (
    echo 发现文件夹【%CurDir%】内含 !FileCount! 个文件,开始迁移
    for %%f in ("%CurDir%\*.*") do (
        set "SrcFile=%%f"
        set "FileName=%%~nf"
        set "Ext=%%~xf"
        set "Dest=%RootPath%\!FileName!!Ext!"
        set Seq=1

        :: 重名则自动追加序号 (1)、(2)...
        :CheckRename
        if exist "!Dest!" (
            set "Dest=%RootPath%\!FileName!(!Seq!)!Ext!"
            set /a Seq+=1
            goto CheckRename
        )
        move "!SrcFile!" "!Dest!" >nul
        echo    已移动:%%~nx^f → !Dest!
    )
    rd "%CurDir%"
    echo    ✅ 已删除空文件夹:%CurDir%
    echo.
)
exit /b
相关推荐
?re?ta?rd?ed?14 小时前
C++11新特性,{}与左值
c++·windows
必须得开心呀16 小时前
windows10系统任务栏图标消失修复
windows
zl_dfq17 小时前
Windows 下 UDP 套接字编程指南
网络·windows·udp
学习论之费曼学习法18 小时前
无人值守AI内容矩阵实战(10):Windows 上让 Python 进程 7×24 活着
人工智能·windows·python·矩阵·powershell·进程守护
少年的范儿18 小时前
Windows 安装 MySQL 8.4 教程(ZIP 解压版):配置 my.ini、初始化数据库与启动服务
数据库·windows·mysql
胖纸不争19 小时前
EnergyStarZ:让 Windows 后台进程给前台让路的能效管理器(v1.2 发布)
windows·性能优化·c#·win32·ef core
2501_9159090620 小时前
Windows 上用 VS Code 调试 iPhone 真机 App,KXBuild 断点、崩溃定位实操
ide·windows·vscode·ios·iphone·个人开发·敏捷流程
情 九21 小时前
MCP 开发环境搭建:Mac 与 Windows 跑通 Python 服务和 stdio 客户端
windows·python·macos·mcp
懂点Tech1 天前
ctfshow misc28:GIF 高度修改解题与脚本实现
开发语言·windows·python
云梦谭1 天前
让 Linux 主动连接 Windows:配置 Windows 11 SSH 服务端
linux·windows·ssh