我当前正在运行一个脚本,该脚本替换文件的某些指定字符。我注意到最近有些文件的文件名中有相似的字符。我只想在_
之后重命名文件名的一部分。
示例文件名:
WB03042019_1226324201
我当前的脚本:
Get-ChildItem *4201.dat | foreach {
Rename-Item $_ $_.Name.Replace("4201", "hfmau2")
}
我的问题是,这会产生以下文件名:
WB030hfmau29_122632hfmau2
答案 0 :(得分:0)
由于您的问题并未显示所需的文件名,因此尚不清楚。
如果您只想更改文件名末尾和下划线后的“ 4201”,则可以使用以下方法:
Get-ChildItem -Path '<PATH TO THE FILES>' -Filter *4201.dat -File |
Rename-Item -NewName {'{0}{1}' -f ($_.BaseName -replace '4201$','hfmau2'), $_.Extension}
产生新的文件名:
WB03042019_122632hfmau2.dat
如果您想更改下划线后的所有内容,而“ 4201”只是用于过滤文件,则应执行以下操作:
Get-ChildItem -Path '<PATH TO THE FILES>' -Filter *4201.dat -File |
Rename-Item -NewName {'{0}{1}' -f ($_.BaseName -replace '(.+_)(\w+)$','$1hfmau2'), $_.Extension}
产生新的文件名:
WB03042019_hfmau2.dat
如果这不是您想要的,请Edit您的问题,并向我们显示所需的新文件名。