Я пытаюсь использовать командлет Rename-Item
, чтобы изменить имя файла для нескольких файлов в папке.
Это пример моих файлов ( в действительности есть больше файлов ):
1_File1.sql
1_File2.sql
1_File3.sql
2_File4.sql
3_File5_NOT_DONE.sql
3_File6_NOT_DONE.sql
3_File7_NOT_DONE.sql
3_File8_NOT_DONE.sql
4_File9_NOT_DONE.sql
5_File10_NOT_DONE.sql
6_File11.sql
6_File12.sql
Что я не хочу делать, так это удалить часть _NOT_DONE из этих файлов:
3_File5_NOT_DONE.sql
3_File6_NOT_DONE.sql
3_File7_NOT_DONE.sql
3_File8_NOT_DONE.sql
например. файлы, начинающиеся с 3_File
Я не хочу, чтобы весь список выглядел так, когда я закончу:
1_File1.sql
1_File2.sql
1_File3.sql
2_File4.sql
3_File5.sql
3_File6.sql
3_File7.sql
3_File8.sql
4_File9_NOT_DONE.sql
5_File10_NOT_DONE.sql
6_File11.sql
6_File12.sql
Я попытался использовать это в powershell, и он получает все файлы, но это вынуждает меня установить новые имена на статическое имя (см. Последнюю часть -Replace
):
Get-ChildItem *.sql | Rename-Item -NewName {$_.name -Replace '3_File.*_NOT_DONE\.sql$', '<static filename>.sql'}
Я хотел бы также использовать регулярные выражения в последней части -Replace
. Или, может быть, есть другой способ заставить новые имена сохранить часть их первоначального имени?