Как переименовать кучу файлов в командной строке?
У меня проблема с именами файлов. Глупая камера, которую я использую, очень часто сбрасывает последовательность автонумерации, и поэтому я получаю тонны конфликтов, если пытаюсь поместить много фотографий в один файл.
Я знаю, что есть способ переименовать их во что-то вроде следующего:
1.jpg, 2.jpg, 3.jpg.,, 2000.jpg и т.д...
К сожалению, я принадлежу к тому поколению, которое никогда не использовало DOS задолго до того, как Windows выпустила все свои фальшивые трюки. I have tried finding an app to do this, but they are quite pathetic, so I want to just do it in either the Windows .cmd or just a plain .bat (that's where I found some decent control over files). Can anyone help me out with the code?
8 ответов
Я люблю командную строку с середины 80-х, но должен признать, что это одна из областей, где я всегда полагаюсь на Rename-It! Я знаю, что вы хотите DOS, но я оставлю это на тот случай, если кто-то споткнется, не услышав об этом.
В периоды, когда мне требовался максимальный контроль над отдельными файлами (обычно в группах), я использовал электронную таблицу для создания командного файла. В этом случае я использую DIR/B для сбора имен файлов в текстовый файл, вставляю их в один столбец, собираю команду переименования в последний столбец (в данном случае D), затем вставляю этот столбец в файл.BAT и запускаю его.
Следующий пакетный файл делает то, что вы хотите:
@echo off
setlocal EnableDelayedExpansion
set i=0
for %%a in (*.jpg) do (
set /a i+=1
ren "%%a" "!i!.new"
)
ren *.new *.jpg
Файлы сначала переименовываются с .new
расширение, чтобы избежать конфликтов с файлами, обрабатываемыми и переименованными обратно в .jpg
в конце
Вы можете использовать ReNamer и определить любые логические правила, которые вы хотите. Удалить, заменить, очистить, регулярное выражение, вставить метатеги, даже сценарий из вашего собственного правила.
Ниже приведен пример правил переименования последовательностей изображений с цифровой камеры:
- Удалить: Удалить из позиции 1 до конца (пропустить расширение)
- Вставить: вставить "Новое имя" в качестве суффикса (пропустить расширение)
- Сериализация: Сериализация Инкремент от 1 шага 1, повтор 1 и пэд до длины 3 в качестве суффикса (пропустить расширение)
Это будет делать то, что вы хотите из командной строки, используя командный файл:
@echo off
SET COUNT=1
SET PREFIX=Photos
FOR /f "tokens=*" %%G IN ('dir /b *.jpg') DO (call :renum "%%G")
GOTO :eof
:renum
ren %1 %PREFIX%_%count%.jpg
set /a count+=1
GOTO :eof
На основании некоторого примера кода на SS4.
На самом деле это не вопрос программирования, а, скорее, то, что можно как-то решить с помощью простого интерфейса Windows. Насколько я знаю, это работает только в Windows 7, но если вы выберете несколько файлов и нажмете F2 или щелкните правой кнопкой мыши -> переименовать, вы можете переименовать первый, а остальные получат то же имя , с (1), (2), (3) и т. д. добавлены к нему. Расширения файлов остаются без изменений.
Это приложение с графическим интерфейсом будет последовательно переименовывать файлы 01,02,03 или 0102,0103,0104. Это очень старый, я не мог найти авторов сайта больше.
http://www.mediafire.com/?71797x4vuv1u6mo (156k, zip, 300k, одно исполняемое портативное приложение, называемое renmfl.exe)
Я использую это, чтобы переименовать много файлов для последовательности в порядке. Он загрузит отсортированные как выбранные, а затем поместит простую последовательную нумерацию для файлов, загруженных в (используйте CTRL A при выборе всей папки, чтобы все файлы были в порядке). Это также начнется с определенного номера.
Длина всех имен файлов (количество файлов за раз) ограничена из-за способа загрузки файлов. Это не позволит вручную обращаться к файлам до нумерации (только в алфавитном порядке). Вы также можете поставить метку, но я никогда не использовал эту функцию. YoSemiPic401, YoSemiPic402, YoSemiPic403. так далее
Это только один тип переименования, но для этого типа он делает это хорошо, он оставляет расширения как есть, я использую другую программу для этого.
"Превосходный пакетный переименователь", который примерно в 10 раз сложнее, будет выполнять последовательное добавление нумерации в разделе "Приложения", или случайным образом, или обо всем, что вы можете придумать.
http://www.mediafire.com/?vxgmac394cx03te (350k Zip 666k переносимый исполняемый файл, электронная почта)
Чтобы установить в нем последовательность, нажмите F2, чтобы перейти в расширенный режим, выберите [x] Добавить, чтобы включить его, В поле ввода текста добавления. Щелкните правой кнопкой мыши, там есть множество вещей, которые вы можете добавить. Одним из них является отсортированный номер.
Если ваша камера помечает фотографии информацией (часто EXIF-метками), а часы вашей камеры, по крайней мере, почти точны, вы можете использовать любую из различных утилит переименования файлов, чтобы использовать эти данные для переименования (и сортировки по папкам, если вы захотите). как) ваши фотографии по их временным меткам.
exiv2 - это утилита командной строки, которая может выполнять эту работу, а ReNamer от den4b - это утилита с графическим интерфейсом, которая также выполняет эту работу. ReNamer - переименователь общего назначения, он не относится к фотографиям. exiv2 - это, прежде всего, инструмент для манипуляции с фото тегами, который также выполняет переименование