PowerShell 删除所有离开 UPC 的字母和破折号

PowerShell to remove all letters and dashes leaving UPC

我有大约 1,800 个 .pdf,包括需要删除以进行管理的带有破折号和文本的 UPC。我找到了删除多余空格和下划线的代码。

如何删除所有文本,只留下 UPC?

01182232110_V1R1_CartonOL_KP_DNV15.pdf    

...到...

01182232110.pdf
# Targets .pdf files in the current dir.
# Add a -LiteralPath / -Path argument to target a different dir.
# Add -Recurse to target .pdf files in the target dir's entire *subtree*.
Get-ChildItem -Filter *.pdf |
  Rename-Item -NewName {  $_.Name -replace '_.+(?=\.)' } -WhatIf

注意:上面命令中的-WhatIf common parameter预览操作。一旦您确定该操作将执行您想要的操作,请删除 -WhatIf

-replace '_.+(?=\.)' 本质上是从输入文件的基本名称中删除以第一个 _ 开头的所有字符(保留扩展名)。