如何编写批处理文件将PDF重命名为含本周周三日期的指定格式?
批处理重命名PDF为含本周周三日期的格式
原代码问题分析
- 日期解析错误:
date /t的输出格式依赖系统区域设置,你的环境中输出为14-06-Wed,原代码错误将星期字段当成了年份,导致生成的日期格式完全不符合要求。 - 未实现本周周三的日期计算:原代码仅使用了当前日期,没有按照需求获取本周周三的日期。
修正后的批处理代码
@echo off setlocal enabledelayedexpansion :: 通过PowerShell获取本周周三的日期,格式为YYYY-M-D for /f "delims=" %%d in ('powershell -Command "(Get-Date).AddDays(-([int](Get-Date).DayOfWeek - 3)).ToString('yyyy-M-d')"') do ( set "wednesdayDate=%%d" ) :: 生成目标文件名 set "newFileName=!wednesdayDate! Document-03.pdf" :: 重命名PDF文件(注:若目录下有多个PDF,仅会重命名第一个;需批量处理可调整逻辑) ren *.pdf "!newFileName!" echo 重命名完成!新文件名:!newFileName! pause
关键逻辑说明
- 本周周三日期计算:借助PowerShell的日期处理能力,通过
(Get-Date).AddDays(-([int](Get-Date).DayOfWeek - 3))计算本周周三的日期——DayOfWeek返回0(周日)到6(周六),通过调整偏移量,无论当前是周几,都能得到本周的周三。 - 日期格式统一:用
ToString('yyyy-M-d')确保输出YYYY-M-D格式(月份、日期不带前导零,如2023-6-14)。 - 延迟扩展:启用
enabledelayedexpansion保证循环中获取的日期变量能被正确引用。
内容的提问来源于stack exchange,提问作者Screamcheese
相关产品推荐
相关产品推荐

