如何通过VSCode或通用脚本批量重命名指定日期格式的PDF文件
方案1:VSCode 实现(优先选择)
- 把存放PDF的目标文件夹直接拖入VSCode,打开为工作区,按下`Ctrl+`` 快捷键唤起内置终端,确认终端当前路径就是PDF所在文件夹。
- 先执行预览命令,仅输出重命名映射、不实际修改文件,核对结果:
- 满足基础命名要求(保留月、日前导零)的PowerShell预览命令(Windows系统默认终端可用,Mac/Linux可直接使用下方Python方案):
Get-ChildItem *.pdf | ForEach-Object { if ($_.Name -match '^(\d{2})(\d{2})(\d{4})_(\d+)\.pdf$') { $newName = "$($matches[3])_$($matches[2])_$($matches[1])-$($matches[4]).pdf"; Write-Host "$($_.Name) -> $newName" } } - 如果要开启去前导零的可选需求,替换为以下预览命令:
Get-ChildItem *.pdf | ForEach-Object { if ($_.Name -match '^(\d{2})(\d{2})(\d{4})_(\d+)\.pdf$') { $newName = "$($matches[3])_$([int]$matches[2])_$([int]$matches[1])-$($matches[4]).pdf"; Write-Host "$($_.Name) -> $newName" } }
- 满足基础命名要求(保留月、日前导零)的PowerShell预览命令(Windows系统默认终端可用,Mac/Linux可直接使用下方Python方案):
- 核对终端输出的新旧文件名映射完全符合预期后,把命令里的
Write-Host "$($_.Name) -> $newName"替换为Rename-Item $_.FullName $newName,再执行就完成批量重命名。
方案2:Python 通用脚本(全平台兼容)
- 新建文本文件,把以下代码复制进去,保存为
rename_pdf.py,放到PDF所在文件夹:import os # 配置项:改为True则去除月、日字段的前导零,改为False则保留前导零 REMOVE_LEADING_ZERO = False for filename in os.listdir('.'): # 仅匹配符合ddmmyyyy_index.pdf规则的PDF文件 if filename.lower().endswith('.pdf') and len(filename.split('_')[0]) == 8: try: date_part, index_suffix = filename.split('_', 1) day = date_part[:2] month = date_part[2:4] year = date_part[4:8] file_index = index_suffix.split('.')[0] if REMOVE_LEADING_ZERO: day = str(int(day)) month = str(int(month)) new_name = f"{year}_{month}_{day}-{file_index}.pdf" # 首次运行仅打印预览,不实际修改文件 print(f"{filename} -> {new_name}") # 确认预览结果正确后,删除下一行开头的#注释,再运行脚本即可实际重命名 # os.rename(filename, new_name) except: print(f"跳过不符合规则的文件: {filename}") - 首次运行脚本:打开终端切到脚本所在路径,执行
python rename_pdf.py,查看控制台输出的重命名映射是否正确。 - 确认结果无误后,打开脚本把
os.rename那行的注释删掉,再次运行脚本就会完成批量重命名。需要去前导零的话,提前把REMOVE_LEADING_ZERO的值改成True即可。
内容的提问来源于stack exchange,提问作者Greg Appelt
相关产品推荐
相关产品推荐

