使用powershell重命名文件以删除字符串

时间:2015-12-14 01:27:43

标签: powershell

我有一堆文件中包含相同的字符串,并希望删除它们

Dir | Rename-Item -NewName { $_.Name -replace " (my string here)","" }

但是,这似乎并没有从文件名中包含该字符串的所有文件中删除字符串。我需要ReGex吗?

之前有一个空格(这让我觉得我在某种程度上需要ReGex。

2 个答案:

答案 0 :(得分:1)

所以我认为需要ReGex以及Powershell的工作方式是正确的:

Dir | Rename-Item -NewName { $_.Name -replace "(\s*) \(STRING HERE\)","" }

答案 1 :(得分:1)

-replace确实使用正则表达式(不区分大小写)。 使用.replace这样的string方法可以在没有正则表达式的情况下获得相同的结果:

Get-ChildItem -path 'your path' | 
Rename-Item -NewName { $_.BaseName.replace(' (my string here)','') + $_.extension } -WhatIf

请注意使用$_.basename代替name。这是因为name既包含文件名又包含扩展名,而basename则不包含。