2016-01-02 2 views
1

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

Я использовал следующий код, чтобы заменить/удалить символы тем, что я хочу.

Заменить

Get-ChildItem -Filter "*One Piece_*" -Recurse | 
    Rename-Item -NewName {$_.Name -replace 'One Piece_','One Piece '} 

Или (удалить пространство)

Get-ChildItem -Filter "* *" -Recurse | 
    Rename-Item -NewName {$_.Name -replace ' ',''} 

Теперь все имена файлов выглядеть следующим образом:

One Piece 031EEE7A115 → должен быть One Piece 031 EEE7A115
One Piece 032FFB90605 → должен быть One Piece 032 FFB90605
и т. Д.

Есть ли способ вставить место во все файлы после номера эпизода?

+0

Вот отличная идея: попробовать свой код на тестовый набор файлов, первый , –

ответ

2

Несомненно. Сделайте регулярное выражение, которое соответствует подстроку от начала названия до трех последовательных цифр и заменить это само по себе и пространство:

Get-ChildItem -Filter '*One Piece_*' -Recurse | 
    Rename-Item -NewName {$_.Name -replace '^(.*?\d{3})', '$1 '} 
+0

Не могли бы вы объяснить код '^ (. *? \ D {3})', '$ 1' – Zezo

+0

@Zezo Это означает, что все до первого встретившегося числа встречаются. http://stackoverflow.com/questions/22937618/reference-what-does-this-regex-mean – Matt

+0

^означает начало сопоставления в начале строки. Также [см. Эту программу] (http://www.joejoesoft.com/vcms/108/), которая позволяет переименовывать файлы с предварительным просмотром. – user4317867

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