1

Можно ли изменить встроенный механизм массового переименования в Win7?

Допустим, можно ли заставить его использовать такой шаблон?

name-001.ext
name-002.ext

2 ответа2

1

Вы можете использовать язык сценариев. PowerShell должен быть на вашей коробке Win7. Вот одна строка:

PS> get-childitem | foreach { $i++; $new = "name-{0:D3}" -f $i + $_.Extension; rename-item $_ $new } ; $i=0

Здесь мы используем Get-ChildItem для перечисления содержимого текущего каталога. Затем мы передаем получившиеся объекты FileInfo в короткий ScriptBlock, который выполняет следующие действия:

  • Инкремент переменной счетчика
  • Создайте новое имя, комбинируя
    • форматированная строка с тремя значащими цифрами для счетчика
    • расширение файла из исходного объекта FileInfo
  • Используйте 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. Преуспевать; попытайся!

0

Мне никогда не удавалось найти способ изменить формат, используемый Windows для пакетного переименования. Однако есть сторонние утилиты, которые справляются с этим без проблем. Я лично использую http://www.bulkrenameutility.co.uk/Download.php, но есть и другие.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .