2015-09-06 3 views
2

У меня есть папка со многими файлами. Я хочу заменить первый совпадающий символ каждого файла. Например, у меня естьЗаменить только первое появление символа в именах файлов

aabbc.txt 
aaabbxx.txt 
aacbbbv.txt 

Я хочу, чтобы заменить первый «Ъ» с «г» результат будет

aazbc.txt 
aaazbxx.txt 
aaczbbv.txt 

поэтому только первый матч будет заменен, что я попробовал это

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

, но он заменяет все буквы «b» в имени файла.

ответ

3

Что-то, как это должно работать:

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

Хитрость заключается в том, чтобы включать в самый короткий матч до первого б ((.*?)) в шаблоне согласования и сохранить его в замене, заменив его с собой ($1).

+0

thx это сработало :) –

Смежные вопросы