You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:编写Windows批处理脚本提取文件名日期并重命名移动文件

Windows批处理实现方案

直接使用以下脚本即可完成需求:

@echo off
setlocal enabledelayedexpansion

:: 定义目标目录,不存在则自动创建
set "target_dir=C:\ABC\DEF"
if not exist "%target_dir%\" md "%target_dir%"

:: 定义英文月份简称转数字映射
set "month_map=Jan:01 Feb:02 Mar:03 Apr:04 May:05 Jun:06 Jul:07 Aug:08 Sep:09 Oct:10 Nov:11 Dec:12"

:: 遍历匹配规则的源文件
for %%f in ("C:\ABC\abcdef - ggggg hhhhhh iiii jj xxxx kkk -*.txt") do (
    set "file_name=%%~nf"
    :: 提取文件名对应日期字段,适配示例文件的空格拆分规则
    for /f "tokens=12,13,14 delims= " %%a in ("!file_name!") do (
        :: 处理日期中的逗号,补全日的前导零
        set "day=%%b"
        set "day=!day:,=!"
        if "!day:~1!"=="" set "day=0!day!"
        :: 匹配月份对应数字
        set "month="
        for %%m in (%month_map%) do (
            for /f "tokens=1,2 delims=:" %%x in ("%%m") do (
                if "%%x"=="%%a" set "month=%%y"
            )
        )
        :: 拼接MMddyyyy格式日期
        set "formatted_date=!month!!day!%%c"
        :: 移动并重命名文件
        move /Y "%%f" "%target_dir%\abcdef_xxxx_!formatted_date!.txt"
    )
)

endlocal

注意事项

  • 以上脚本默认适配Windows英文系统的月份简写规则,如果你的服务器是中文系统,将month_map中的英文月份简称替换为对应中文月份即可
  • 脚本已添加/Y参数,移动时会自动覆盖目标路径下的重名文件,如果你需要保留重名文件避免覆盖,删除该参数即可
  • 如果文件名的空格分隔位置发生变化,调整tokens=12,13,14中的数字,匹配日期对应的三个字段位置即可适配新的命名规则

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 12:45:03