我正在尝试重命名目录的所有文件,删除文件名中不包括某些部分的部分。

例如:



我在Powershell中尝试了以下代码:

Get-ChildItem | rename-item -NewName {$_.name -replace "Something",""}
Get-ChildItem | rename-item -NewName {$_.name -replace "Good.bye",""}
Get-ChildItem | rename-item -NewName {$_.name -replace "Something_else",""}
Get-ChildItem | rename-item -NewName {$_.name -replace " Hello(.*?)\.srt",".srt"}
Get-ChildItem | rename-item -NewName {$_.name -replace " ",""}

关于正确的正则表达式代码而不是硬编码以排除文件名的“SxxExx.srt”部分并删除名称的其他部分的任何想法吗?

最佳答案

您将要使用这样的模式:

(S\d{2}E\d{2})

匹配并捕获S01E01部分。
Get-ChildItem | Rename-Item -NewName {($_.BaseName -replace '^.*(S\d{2}E\d{2}).*$','$1') + $_.Extension}

关于regex - 正则表达式排除某些内容并批量重命名文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58355354/

10-13 09:18