如何使用Powershell将时间戳命名的媒体文件重命名为指定日期时间格式
PowerShell 批量重命名时间戳格式文件解决方案
最优实现(正则替换)
用正则分组匹配替换的方式比手动截串更简洁、容错性更高,代码如下:
首先建议先执行带测试参数的命令预览修改结果,确认无误后再正式执行:
# 仅预览修改结果,不会实际重命名 Get-ChildItem -File | Rename-Item -NewName { $_.Name -replace '^(\d{4})(\d{2})(\d{2})_(\d{2})(\d{2})(\d{2})_', '$1-$2-$3 $4-$5-$6 ' } -WhatIf
确认预览结果符合预期后,去掉-WhatIf参数即可实际执行重命名:
# 正式执行重命名 Get-ChildItem -File | Rename-Item -NewName { $_.Name -replace '^(\d{4})(\d{2})(\d{2})_(\d{2})(\d{2})(\d{2})_', '$1-$2-$3 $4-$5-$6 ' }
实现说明
- 加
-File参数仅处理文件,避免误修改文件夹名称 - 正则逻辑:从文件名开头依次匹配年(4位)、月(2位)、日(2位)、第一个下划线、时(2位)、分(2位)、秒(2位)、第二个下划线,将匹配到的内容按要求插入横杠、空格替换原有格式
- 不符合
yyyyMMdd_HHmmss_*.*命名规则的文件不会被修改,安全性更高 - 如果需要同时处理所有子文件夹内的符合规则的文件,修改
Get-ChildItem部分为Get-ChildItem -File -Recurse即可
内容的提问来源于stack exchange,提问作者Loom
相关产品推荐
相关产品推荐

