Powershell 删除视频文件名中包含方括号/圆括号以及这些括号内的所有内容的部分

问题描述 投票:0回答:1

我有几个带有圆括号和/或方括号的视频,其中包含一些文本,例如

(ANTYHING HERE)
[ANTHING HERE]
:

例如:

MOVIENAME 2024 LANG [SOMETEXTHERE] 1080P.mkv
MOVIENAME 2024 (SOMEOTHERTEXTHERE) LANG [SOMETEXTHERE] 1080P.mp4

通过使用 Powershell 和正则表达式文本替换,我想将其重命名为

MOVIENAME 2024 LANG 1080P.mkv
MOVIENAME 2024 LANG 1080P.mp4
意味着我想删除任何圆括号和/或方括号以及其中的任何内容,同时删除任何额外的空格,这意味着查找并转换 2 或更多的空间到只有 1 个空间,可能在单个
-replace
通道中,或者最多在两个这样的通道中。

我尝试这样做只是为了方括号,但它不起作用:

$validExtensions = '.mkv', '.mp4'
Get-ChildItem -Recurse -File |
    Where-Object Extension -In $validExtensions |
    Where-Object Length -GT 500mb |
    Rename-Item -NewName {($_.BaseName -replace '(.*)(\[.*\])(.*)', '$1$3')}.ToUpper() + $_.Extension

任何人都可以帮助实现我想要的吗?

regex windows powershell replace regex-replace
1个回答
0
投票

链接两个

-replace
操作,如下:

($_.BaseName -replace '[[(].*[])]' -replace '  +', ' ').ToUpper() + $_.Extension
© www.soinside.com 2019 - 2024. All rights reserved.