2015-09-06 89 views
2

我有一个包含许多文件的文件夹。我想要的是替换每个文件的第一个匹配的字符。比如我有只替换文件名中第一次出现的字符

aabbc.txt 
aaabbxx.txt 
aacbbbv.txt 

我想用一个“Z”来替代第一个“B”的结果将是

aazbc.txt 
aaazbxx.txt 
aaczbbv.txt 

所以只有第一场比赛将被替换是我的尝试是

Dir | Rename-Item -NewName { $_.name -replace "b","a" } 

但它替换文件名中的所有“b”。

回答

3

像这样的东西应该工作:

Dir | Rename-Item -NewName { $_.name -replace '^(.*?)b', '$1z' } 

关键是要包括到第一个B((.*?))在匹配模式最短的匹配,并用自身替换它保持它在更换($1 )。

+0

thx it worked :) –

相关问题