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

9

Есть ли простой способ переименовать все файлы в каталоге? PowerShell - это путь?

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

c:\family_pics\
   img123.jpg
   img124.jpg

к этому:

c:\family_pics\ 
   family_pics_1.jpg 
   family_pics_2.jpg

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

Даже Миен
источник

Ответы:

16

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

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

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

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

user2278
источник
10

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

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

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

Портман
источник
Excel - лучший генератор кода / скрипта, который я знаю.
GvS
3

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

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

Вот скриншот этого в действии введите описание изображения здесь

scunliffe
источник
1

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

user2287
источник
Только что попробовал, начиная с файла A.m, fileB.m и т. Д. Вместо файла A_001.m, fileB_002.m вместо этого получил файл A_001.m, файл A_001 (1) .m, файл A_001 (2) .m и т. Д.
jacobsee,
1

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

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

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

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

введите описание изображения здесь

cagcowboy
источник
+1 переименовать было просто круто!
Крис Марисик
0

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

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

имя пользователя
источник
0

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

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

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

Goyuix
источник