Можно ли изменить встроенный механизм массового переименования в Win7?
Допустим, можно ли заставить его использовать такой шаблон?
name-001.ext
name-002.ext
Вы можете использовать язык сценариев. PowerShell должен быть на вашей коробке Win7. Вот одна строка:
PS> get-childitem | foreach { $i++; $new = "name-{0:D3}" -f $i + $_.Extension; rename-item $_ $new } ; $i=0
Здесь мы используем Get-ChildItem
для перечисления содержимого текущего каталога. Затем мы передаем получившиеся объекты FileInfo в короткий ScriptBlock, который выполняет следующие действия:
Rename-Item
с исходным объектом FileInfo и новым именемЭтот последний элемент сбрасывает счетчик $ i; полезно, когда вы экспериментируете, чтобы первое имя файла начиналось с 1, а не на единицу больше, чем конечное значение, которое оно имело в прошлый раз, когда вы читали сценарий. (Спроси меня, откуда я знаю).
Положите это вместе, и вот что вы получите:
Выполняется в каталоге со следующим содержимым:
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 10/3/2011 11:45 AM 455 save-times.csv
-a--- 2/23/2012 4:03 PM 553376 save_patch.zip
-a--- 2/1/2012 10:55 AM 131280 user-gp.html
-a--- 6/7/2011 11:58 AM 38557 wks.xml
-a--- 5/23/2011 3:28 PM 16384 xmllint.exe
Я получаю следующий результат:
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 10/3/2011 11:45 AM 455 name-001.csv
-a--- 2/23/2012 4:03 PM 553376 name-002.zip
-a--- 2/1/2012 10:55 AM 131280 name-003.html
-a--- 6/7/2011 11:58 AM 38557 name-004.xml
-a--- 5/23/2011 3:28 PM 16384 name-005.exe
Для получения дополнительной информации см. Документы TechNet по использованию командлета Get-ChildItem и использованию командлета Foreach-Object. Преуспевать; попытайся!
Мне никогда не удавалось найти способ изменить формат, используемый Windows для пакетного переименования. Однако есть сторонние утилиты, которые справляются с этим без проблем. Я лично использую http://www.bulkrenameutility.co.uk/Download.php, но есть и другие.