使用 powershell + regex 整理文件名

使用 powershell + regex 整理文件名

我有一个硬盘,里面的文件名称已被 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)
}

相关内容