Назад | Перейти на главную страницу

Простой способ переименовать все файлы в каталоге в Windows

Есть ли простой способ переименовать все файлы в каталоге? Подходит ли PowerShell?

Я бы хотел уйти от этого:

c:\family_pics\
   img123.jpg
   img124.jpg

к этому:

c:\family_pics\ 
   family_pics_1.jpg 
   family_pics_2.jpg

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

На основании того, что все можно сделать в одной строке PowerShell (точно так же, как все можно сделать в одной строке Perl), вот код PS для одного каталога.

$i=0; get-childitem $dirname | foreach-object {

       rename-item "$dirname\$_" $("{0}_{1}{2}" -f $dirname, ++$i, $_.Extension)
}

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

Это немного взломано, но я занимаюсь этим уже 12 лет и довольно быстро справляюсь:

  • Откройте командную строку в c: \ family_pics и введите dir >> dir.xls
  • Откройте файл dir.xls в Excel
  • Выделите первый столбец, выберите «Текст в столбцы» и добавьте разрывы столбцов на пробелах (игнорируя дубликаты).
  • Теперь у вас есть хорошая таблица с вашими текущими именами файлов, размерами файлов и т. Д.
  • Добавьте новый столбец "ren" перед именем файла
  • Добавьте новый столбец после имени файла и используйте любые функции Excel для создания нового имени файла. В вашем случае, если вы введете первые два имени файла, а затем дважды щелкните нижний правый угол ячейки, Excel автоматически обнаружит шаблон и сгенерирует оставшиеся имена.
  • Сохранить как ren.bat
  • Запустите только что созданный командный файл, и он переименует все ваши каталоги.

Хотя это может быть не сразу очевидно, Excel очень хорошо подходит для такого рода задач, потому что вы можете использовать любую формулу, которую хотите для создания новых файлов, используя входные данные из существующих файлов (временная метка, имя файла, размер и т. д.).

Хотя вы можете делать что-то с пакетным файлом, я обнаружил, что лучше больше контроля, опций и т. Д. И визуального представления о том, что должно произойти.

Есть бесплатный инструмент под названием CKRename. Сайт оригинального автора вроде бы исчез, но приложение полнофункциональное и довольно популярное (я использую его уже 8 лет). Скачать CKRename

Вот скриншот в действии

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

ReNamer: http://www.den4b.com/

Также см: Как переименовать часть имени файла из набора файлов в Windows?

Перетащите папку с картинками в ReNamer (по умолчанию подпапки будут добавляться рекурсивно). Щелкните столбец «Имя» для сортировки по имени файла, если вы хотите сохранить последовательный порядок. Специальный метатег позволит вам использовать имя родительской папки для переименования. Используйте следующие правила переименования:

  1. Удалить с позиции 1 до конца (пропустить расширение)
  2. Вставьте ": File_FolderName: _" в качестве префикса (пропустить расширение)
  3. Сериализовать инкрементально из 1 шага 1 повторить 1 как суффикс (пропустить расширение)

Total Commander есть некоторые классные функции переименования нескольких файлов.

Конечно, если вы в PowerShell Решение owenevans00 выглядит отлично.

Загрузите RenameFiles (бесплатное ПО). Это одна из немногих программ, которые мне очень не хватает с тех пор, как я перешел с Windows на Apple.

Похоже, он доступен здесь http://it-falke.com/software/renamefiles/us_description.php но у меня нет ПК, чтобы проверить эту ссылку. Последняя версия, которую я использовал, была 2.1.4. Это было действительно просто, но универсально.

это удаляет последние четыре символа (обычно расширение)

dir *.jpg | % { ren $_.Name $_.Name.Substring(0,$_.Name.Length-4) }

Возможно, вам придется адаптировать приведенное выше для обработки пробелов или ваших конкретных требований к переименованию.