2015-09-06 84 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 :) –

相關問題