2016-08-25 2 views
1

Следующий код прекрасно работает:Powershell Rename-Item Multiple In 1 из и чувствительность к регистру

Get-ChildItem -Path E:\Videos\Movies\ -File -Include *.avi,*.mp4,*.mkv -Recurse | Rename-Item -NewName { $_.Name.replace("DVDRIP","DVD") } 

Теперь 2 вопроса:

  1. Во всяком случае я могу ввести несколько слов, чтобы заменить на DVD ? Вот что я подумал:

    Get-ChildItem -Path E:\Videos\Movies\ -File -Include *.avi,*.mp4,*.mkv -Recurse | Rename-Item -NewName { $_.Name.replace("DVDRIP|DVDR|DVD5|DVD9","DVD") } 
    

    Я пробовал эту и другие варианты, но я просто не могу понять это.

  2. Как я могу сделать код НЕ чувствительным к регистру, поэтому у меня нет нескольких строк, пытаясь поймать возможные различные варианты написания?

ответ

0

Вы используете шаблон регулярного выражения с обычным методом замены текста. Попробуйте -replace, который создан для регулярного выражения. -replace по умолчанию также не чувствителен к регистру.

Get-ChildItem -Path E:\Videos\Movies\ -File -Include *.avi,*.mp4,*.mkv -Recurse | 
Rename-Item -NewName { $_.Name -replace "DVDRIP|DVDR|DVD5|DVD9","DVD" } 
+0

КРАСИВЕЙШАЯ! Я знал, что это было что-то глупое, которого я пропустил! Это отлично работает, спасибо огромное! – Failstyle

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

  • Нет связанных вопросов^_^