如何使用powershell替换文件名中的特定字符串

How to replace specific string in a file name using powershell

我正在尝试编写一个 powershell 脚本,该脚本转到特定文件夹,该文件夹有多个包含 Excel 文件的文件夹。文件名如示例 1_RIM_Reports_201510.xlsx 2_Rim_Reports_September.xlsx

现在我想用 NIR 替换 RIM 这个词,我该如何对多个文件执行此操作。

1_NIR_Reports_201510.xlsx 2_NIR_Reports_September.xlsx

Get-ChildItem $directory -Recurse |

    Rename-Item { $_.name -replace '*RIM*.xlsx', '*NIR*.xlsx' }

如果你的字符串前后总是有下划线_你可以简单地使用这个:

Get-ChildItem $Directory -Recurse | 
Foreach-Object { Rename-Item $_.FullName ($_.FullName -replace "_RIN_","_NIR_")}

否则您需要使用正则表达式,如果是这种情况请告诉我们