我有一个硬盘,里面的文件名称已被 Windows 的“文件历史记录”功能格式化。典型的文件名如下所示:
Randomfile - blah (2015_05_29 14_56_40 UTC).docx
或者
1415374402647_res_original (2015_05_31 15_33_12 UTC).jpg
我需要做的是删除每个文件末尾的日期/时间戳。文件太多,无法手动执行此操作,这就是为什么我希望使用 powershell 和正则表达式来帮我完成此操作。它还需要递归,这样它也会搜索子文件夹。
我的操作系统是Win7 Ultimate。
答案1
好吧,如果您想要做的只是删除最后一组括号中的所有内容(我假设所有日期都在括号中):
Get-ChildItem -Recurse | Rename-Item -NewName {
$file = $_.FullName.Substring(0, $_.FullName.LastIndexOf("(")).Trim()
$file + $_.FullName.Substring($_.FullName.IndexOf(")") + 1)
}