PowerShell批量重命名文件:两位年份转四位年份求助
批量文件重命名:两位年份转四位年份(PowerShell实现)
直接用正则表达式结合脚本块的方式,可一次性处理所有符合规则的年份,无需逐个编写替换语句:
Get-ChildItem *.* | Rename-Item -NewName { $_.Name -replace '_(\d{2})-', { $twoDigitYear = $args[0].Groups[1].Value $prefix = if ($twoDigitYear -ge 25 -and $twoDigitYear -le 99) { '19' } else { '20' } "_$prefix$twoDigitYear-" } } -WhatIf
关键说明:
-WhatIf:添加该参数会仅预览重命名结果,不会实际修改文件名。确认预览效果符合预期后,删除此参数即可执行真实重命名。- 正则匹配:
_(\d{2})-精准定位文件名中_开头、两位数字、-结尾的年份片段,(\d{2})是捕获组,专门提取两位年份数字。 - 年份前缀判断:脚本块根据捕获的两位年份自动选择前缀:25-99的年份加
19,00-23的年份加20,拼接成四位年份格式后替换原片段。 - 批量覆盖:一次运行即可处理1925-2023范围内的所有目标年份,无需重复编写脚本。
注意事项:
- 执行前建议先在测试文件夹验证脚本效果,避免误操作。
- 确保文件名中符合
_XX-格式的片段唯一(你已说明该条件满足),防止意外替换其他数字片段。
内容的提问来源于stack exchange,提问作者idontkn0w123
相关产品推荐
相关产品推荐

