You need to enable JavaScript to run this app. 如何编写循环运行的bat批处理任务实现文件名日期格式修改
优惠活动
大模型
产品
解决方案
定价
更多

如何编写循环运行的bat批处理任务实现文件名日期格式修改

批处理实现PDF文件名日期转换+循环监听方案

脚本功能

  • 持续监听指定文件夹A中的PDF文件
  • 自动识别文件名中DD.MM.YYYY格式的日期,转换为YYYYMMDD格式
  • 重命名后的文件自动输出到目标文件夹B,源文件可保留或自定义删除
  • 自动跳过已处理过的文件,避免重复操作

完整脚本代码

@echo off
setlocal enabledelayedexpansion

:: 配置源文件夹A和目标文件夹B路径,替换为你实际的路径
set "SOURCE_DIR=.\A"
set "TARGET_DIR=.\B"

:: 若目标文件夹不存在则自动创建
if not exist "%TARGET_DIR%" md "%TARGET_DIR%"

echo 监听已启动,正在扫描文件夹 %SOURCE_DIR% 中的PDF文件...
echo 停止监听请直接关闭窗口或按Ctrl+C

:loop
:: 遍历源文件夹下所有PDF文件
for %%f in ("%SOURCE_DIR%\*.pdf") do (
    set "filename=%%~nf"
    set "ext=%%~xf"
    :: 按下划线拆分文件名,第6段即为DD.MM.YYYY格式的日期(对应示例文件名结构)
    for /f "tokens=1-6* delims=_" %%a in ("!filename!") do (
        set "date_str=%%f"
        :: 拆分日期为日、月、年
        for /f "tokens=1-3 delims=." %%i in ("!date_str!") do (
            set "new_date=%%k%%j%%i"
            :: 拼接新文件名
            set "new_filename=%%a_%%b_%%c_%%d_%%e_!new_date!_%%g!ext!"
            :: 仅当目标文件不存在时才执行复制,避免重复处理
            if not exist "%TARGET_DIR%\!new_filename!" (
                copy "%%f" "%TARGET_DIR%\!new_filename!" >nul
                echo 已处理文件:%%~nxf -> !new_filename!
                :: 如果需要处理后删除源文件,取消注释下一行
                :: del "%%f" /f /q
            )
        )
    )
)
:: 每次扫描间隔5秒,可按需修改数字调整间隔
timeout /t 5 /nobreak >nul
goto loop

使用说明

  • 将脚本中SOURCE_DIR和TARGET_DIR的路径替换为你本地实际的文件夹A、B路径,路径存在空格时需保留外层引号
  • 扫描间隔可修改timeout /t 5中的数字调整,单位为秒
  • 如果需要处理完成后自动删除源文件夹A中的原文件,删除del "%%f" /f /q前的::注释即可
  • 脚本保存为.bat后缀的文件,双击即可启动运行,关闭窗口或按Ctrl+C即可终止监听

内容的提问来源于stack exchange,提问作者kenwin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.14 16:54:02