Что такое регулярное выражение для замены шаблона "123456-name"? - PullRequest
0 голосов
/ 21 сентября 2010

Я пытаюсь переименовать несколько файлов в Windows, используя PowerShell.И я хочу переименовать, заменив этот шаблон:

"123456-the_other_part_of_the_string".Пример:

409873-doc1.txt
378234-doc2.txt
1230-doc3.txt

В основном я хочу обрезать цифры + '-' вещь.

Ответы [ 3 ]

2 голосов
/ 21 сентября 2010
$variable -replace "^\d+-", ""
0 голосов
/ 21 сентября 2010
Get-ChildItem . *.txt | Where {$_.Name -match '^\d+-(.*)'} | 
                        Rename-Item -NewName {$matches[1]}

или с псевдонимами:

gci . *.txt | ?{$_.Name -match '^\d+-(.*)'} | rni -new {$matches[1]}
0 голосов
/ 21 сентября 2010
[0-9]*?-[^.]*

Я бы порекомендовал вам потратить некоторое время на изучение регулярных выражений, а не просто использовать ответы SO.Вы столкнетесь со всевозможными необычными именами файлов, которые могут отбросить вашу программу в реальном мире, и вы не сможете исправить эти проблемы без понимания регулярных выражений.

РЕДАКТИРОВАТЬ: Не уверен, что вы также хотитеудалить часть «имя».Если нет, используйте это вместо:

[0-9]*?-
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...