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

在批处理文件中为文件名追加当月最后日期的实现方法

批处理实现文件名添加当月最后日期

实现思路

Windows CMD原生命令无法直接获取当月最后一天,因此我们可以在批处理中内嵌一段VBScript代码来计算当月的最后日期,再利用这个日期完成文件名的重命名操作。

完整批处理代码

@echo off
setlocal enabledelayedexpansion

:: 定义要修改的文件名
set "source_file=ABC.pdf"

:: 用VBScript计算当月最后一天的YYYYMMDD格式日期
echo WScript.Echo DateAdd("d", -1, DateAdd("m", 1, DateSerial(Year(Date), Month(Date), 1))) > get_last_day.vbs
for /f "tokens=1-3 delims=/" %%a in ('cscript //nologo get_last_day.vbs') do (
    set "year=%%c"
    set "month=%%a"
    set "day=%%b"
)
:: 补零处理,确保月份和日期是两位数字
if !month! lss 10 set "month=0!month!"
if !day! lss 10 set "day=0!day!"
set "last_date=!year!!month!!day!"

:: 删除临时VBS文件
del get_last_day.vbs

:: 拆分原文件名的主名和扩展名
for /f "delims=. tokens=1,*" %%i in ("%source_file%") do (
    set "filename=%%i"
    set "ext=%%j"
)

:: 执行重命名
ren "%source_file%" "!filename!_!last_date!.!ext!"

echo 文件名已修改为: !filename!_!last_date!.!ext!
endlocal

代码说明

  • setlocal enabledelayedexpansion:开启延迟变量扩展,确保循环内的变量能正确取值
  • 内嵌VBScript代码:通过DateSerial构造当月第一天,加一个月后再减一天,得到当月最后一天
  • 补零处理:确保月份和日期始终是两位数字(比如1月变成01,5日变成05)
  • 拆分文件名:分离主文件名和扩展名,避免直接拼接导致扩展名丢失
  • 执行ren命令完成重命名操作

使用说明

  • 将上述代码保存为rename_with_last_day.bat
  • 把批处理文件和要修改的ABC.pdf放在同一目录下
  • 双击运行批处理即可完成重命名

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 11:50:46