Bat скрипт переименование всех файлов в каталоге с расширением jpg в jpeg

Обновлено: 07.07.2024

У меня есть около 1000 изображений, и они имеют название, как «IMG-12223». Я хочу переименовать их в 1 2 3 4 . 1000. Как я могу это сделать. Я написал пакетный скрипт, который перечисляет файлы, но я не знаю, как переименовать каждый файл. например переименуйте первое изображение с именем «IMG-12223» в 1, второе изображение с именем «IMG-23441» в 2 и так далее .

Вот сценарий. Просто поместите скрипт в вашу папку и запустите его.

Если вы хотите сохранить расширения, то есть переименовать «IMG-12223.jpg», «IMG-12224.jpg» и т.д. В «1.jpg», «2.jpg» и т.д., Вы можете использовать следующий скрипт.

[Update] Вот пояснения к строкам, упомянутым в комментарии Джека.

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

    for /f "delims lang-default">dir с опцией /b , перечисляет только имена файлов всех файлов jpg.

Цикл for обходит и переименовывает все файлы jpg.

Для опции delims , поскольку символ разделителя по умолчанию является пробелом, без опции delims= происходит сбой с файлами изображений с пробелами в именах файлов. И.Е. для файла изображения с именем «img with spaces.jpg» без опции значение %%i равно «img», но не полное имя «img with spaces.jpg», что неверно.

Я должен изменить его на if not "%%

nx0" , чтобы быть более точным. И прилагаемые коды были обновлены.

Это на самом деле используется, чтобы избежать переименования самого файла bat. Если мы ограничим переименование только для файлов "jpg", то строка не нужна.

nxi - это имя файла с расширением для каждого пройденного файла. И %

nx0 - это запущенный bat-файл с расширением. Для получения подробной информации, пожалуйста, обратитесь к странице Файл DOS BAT, эквивалентный команде Unix basename? .

Нет необходимости в пакетном скрипте. Простой один вкладыш из командной строки может сделать работу :-)

Я использую DIR/B, чтобы сгенерировать список файлов, переданный в FINDSTR для нумерации файлов, все они заключены в FOR/F, чтобы проанализировать результат и выполнить переименование.

Удвойте проценты, если вы хотите поместить команду в пакетный скрипт.

Попробуйте, у вас есть пара имен в текстовом файле, затем зациклите значения и сделайте магию. Значения имен разделяются пустыми пробелами. Это позволяет отображать старые-> новые имена файлов соответственно. Или вы держите счетчик idx + 1 и используете его для новых имен файлов.

0,-6" это я отрезаю "_a.txt" в конце имени файла.
Если явно указать размер обрезки в начале имени файла как (out:

7,255), то всё работает, но длина имени файла бывает различной и потому "

7" надо заменить на переменную и вот тут у меня тупик.
Если разкомментарить стр.2 и закомментарить стр.7, то в строке 8 %num% равно 7 (присвоено в строке 2) и всё хорошо, но это тоже самое что и (out:

7,255), т.е. совершенно не учитывает разнодлинные имена файлов.
А вот если оставить так как сейчас в коде, то отработавшая строка №7 возвращает num равный позиции "_a.txt" в имени файла (т.е. %num% = 7), как бы всё хорошо, но вот в строке 8 этот же самый %num% уже почему-то равен нулю (или вообще пуст).
Помогите разобраться, что не так делаю. Или может существуют более изысканные варианты реализации?

__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь

Пакетное переименование файлов в каталоге
В папке есть некое количество файлов с расширением .jpg Надо с помощью батника переименовать эти.

Пакетное переименование файлов по маске
Всем привет. Нужна помощь. Задача: В папке есть файлы вида ААА(3_3_x).txt, где ААА -.

Пакетное переименование файлов по заданному шаблону
Нужен bat файл, который переименнует все файлы по указанному пути, вот так: name401 name402 .


Как реализовать пакетное переименование папок исходя из списка в rules.txt?
Есть каталог, в этом каталоге есть подкаталоги с именами типа: ЛС213302580910 Имена подкаталогов.

Или может существуют более изысканные варианты реализации? Добавлено через 3 минуты
Но извращенцев, вставляющих пробелы в имя файла, надо убивать на месте из рогатки.

Спасибо, поэксперементирую. Но это не совсем то что надо.
Вероятно я не совсем точно описал необходимое. вернее в качестве примера описал только частный случай.

Нужно мой текст вставить в имя файла, в качестве примера взял " (123)".
Не тупо "12345_a.txt" переименовать в "12345 (123)_a.txt",
взять все символы до "_" в первую часть имени, а начиная с "_" во вторую часть и между ними вставить свои символы.
т.е. "1234sdw5_dsfs.txt" -> "1234sdw5(мой текст)_dsfs.txt"

можно конечно сделать так

Результат тот что нужен, но как-то это всё не очень выглядит.
Вероятнее всего будут только "_a", "_r" и "_g" перед расширением у файлов, а потому использую только 3 for`a.

0,-6!" - это берём строку без последних 6 символов, а как взять последние 6 символов из строки? у меня что-то не получается.

Но извращенцев, вставляющих пробелы в имя файла, надо убивать на месте из рогатки. пардон, но с какого это фига? DOS 6.0 с ними плохо работает чтоли. Кавычки в bat файлах никто не отменял! сеньк, уже ближе к тому что надо.
как я вижу надо описывать очень детально.
структура имени файлов следующая
xxxx_fdsfskfjsf_a.txt
если использовать "delims=_ tokens=1-2", то начало текст вставляется не очень корректно
если использовать "delims=_ tokens=2-3", то начало файла до первого подчёркивания теряется

Решение

Ну ты крут.Тебе в разведке только служить

Ну эт наврятли, раз сам не смог написать.
А вообще, спасибо большое. Последний вариант с небольшими доработками как раз то что нужно.

Добавлено через 38 минут
PS А вот volodin661 ваши комменты из разряда "почему? - ПОТОМУ", а значит безосновательны! Мне лично пробелы очень и очень редко отравляют жизнь, в основном что с ними что без них. При таком количестве "косолапых пользователей" практически во всех организациях, проще привыкнуть и самому научиться работать с пробелами, чем из рогатки расстреливать всех "извращенцев".
. немного лирики.
По поводу косолапости - был случай, была как-то давно на EXCEL определённая шаблонка, и надо было её периодически заполнить куче народа, и для итогового сведения в общую таблицу надо было заполнять обязательно чётко по определённому порядку, т.е. все заполняемые значения должны быть чётко определённого типа и чётко в определённом месте. Зная, что люди будут заполнять что хотят и как хотят, я предусмотрел всевозможные варианты дабы никто и ничего криво ввести не смог. И был этим доволен - т.е. думал шансов у них нет. Ага, счас. На итоге анализа конечного результата результат оказался всё равно очень даже кривой. Начал выяснять. Оказалась, на защищённой EXCELевской книжке с заданными проверками значений ячеек и т.д., где люди тупо в принципе не могли сделать ошибок, ибо просто им это не позволилось бы - эти ПОЛЬЗОВАТЕЛИ всё таки СМОГЛИ отличиться. Вместо значений типа "0,07" было вбито "o.o7", поясню - буква О, точка, буква О, семь. ДИБИЛЫ! На вопрос как они это сделали (ведь это невозможно было сделать) они сказали, что в той форме что им прислали, они не смогли вбить значения (т.к. ошибочные данные им не позволялось вводить), и они тупо скопировали весь лист в новую книгу, вставили ТОЛЬКО значения, все формулы проверки и защиты соответственно убились, затем подменили новым файлом защищённый файл, потом вбили то что им хотелось и отправили на сведение результатов. Я был в шоке от их изящного выхода из ситуации! Оказалось что я предусмотрел всё кроме дибилов. Потому даже если вы считаете что пробелы в именах используют только извращенцы, то я могу сказать что от этого никуда не денешься, и наше дело предусмотреть наличие "дибилов" в этой жизни. и. как это не досадно. но рогаток на всех не хватит! Факты, они такие - всегда не соответствуют тому что нам хочется! Надеюсь повеселил вас

Всё-таки, временами возникает необходимость решить туже задаче несколько иной реализацией.
Нужно разбить строку на две части и вставить между ними текстульку, разделителем может быть что угодно.

на входе куча файлов "*.txt" имена произвольные и произвольной длины (возьму к примеру "1234567890.txt"), нужно скажем за 3 символа до конца имени файла вставить свой текст, т.е. на выходе для взятого для примера файла надо получить "1234567(МОЙ_ТЕКСТ)890.txt"

Делаю так, может криво, может не так как положено. и т.д. но это не важно!
В строках 18 и19 ( !out:

%num_beg%,255! ) загвоздка с раскрытием переменной, если num_beg тупо задать через set до цикла, то переменная раскрывается, если же её вычислять, то ничё не работает.
В данном случае идеально было бы применение "!out:

!num_beg!,255!" , но так же нельзя. а как по другому не знаю!

@set num_end=3, это те самые 3 символа что нужно отсчитать от конца имени файла (без расширения)
@set /a num_end=num_end+4, добавляем ещё 4 символа (расширение с точной)
Ну и собственно код.

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

Профессиональный подход

Чтобы зайти в командную строку, в каталоге с файлами, которым вам предстоит дать другие имена, введите « cmd ». Ввод подтвердите Энтером. Результатом действия станет открытие командной строки для данной директории.

В качестве примера поменяем расширение всех JPG-картинок. Чтобы сделать это, введите команду в формате « ren *.jpg *.jpg ». Для завершения действия нажмите Энтер. В итоге у всех картинок, расширение которых изначально было JPG, оно поменяется на PNG.

Самый простой метод

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

Сначала создайте новый каталог и переместите туда все файлы, которым вы хотите дать новые имена. Выберите табличное отображение файлов. Затем вам необходимо выделить файлы. Нажмите Shift и не отпуская его жмите стрелку вниз. Второй подход еще проще — используйте клавиатурную комбинацию Ctrl и A для выделения всех файлов в директории.

После этого в контекстном меню первого из выделенных вами ранее файлов выберите опцию переименования и введите название, которое станет использоваться в дальнейшем. Подтвердите произведенное действие Энтером. Успешным результатом переименования станет присвоение всем файлам в каталоге имен, которые состоят из общей части, например «Изображение» и номера в списке — «единица», «двойка», «тройка» и так далее.

Редко используемый, но удобный способ

Проще всего будет сначала войти в нужный вам каталог и лишь оттуда запустить PowerShell щелчком по соответствующему пункту в меню « Файл ».

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

В этом случае команда будет иметь следующий вид: « dir | rename-item -NewName ». После ввода примените ее нажатием Энтера. Разумеется, это только один из возможных примеров. У вас может быть другая исходная общая составляющая названий файлов и другая итоговая.

Со сторонним софтом — удобнее

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

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

Чтобы перейти к нужной вам опции используйте сочетание клавиш M и Ctrl или найдите ее в меню «Файл». Вам будет предложено определить маску.

В этой строке вы печатаете название, которое станет использоваться в будущем. Сразу же вам видно, как станет выглядеть итог вашей работы. Предусмотрены опции изменения расширения, а также использования в именах текущей даты. Опция «счетчик» дает возможность добавить к названиям файлов порядковые номера. Применить изменения можно щелчком по экранной кнопке «Выполнить».

Какие файловые менеджеры и другие инструменты работы с файлами нравятся вам больше всего?

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

Если у вас есть файл без расширения, Windows, вероятно, назначит ему общий значок. Когда вы пытаетесь открыть его, Открыть с появится диалоговое окно, где вы получите список программ на выбор.

расширения файлов

Очевидно, что, поскольку у файла нет расширения для файла, Windows не может определить, какая программа должна его открыть. Если вы хотите изменить расширение файла для файла, сначала вы должны увидеть расширение файла в Windows. Вы можете сделать это, перейдя на Мой компьютер и затем перейдя инструменты а также скоросшиватель Опции,

В Windows 7 нажмите на организовать кнопку, а затем нажмите Папка и параметры поиска,

папка и параметры поиска

В Windows 8 вы просто нажимаете на Посмотреть вкладку в проводнике и проверьте Расширения имени файла коробка.

расширения имени файла

Перейти к Посмотреть и прокрутите вниз, пока не увидите опцию «Скрыть расширения для известных типов файлов«. Идите и снимите флажок.

скрыть окна расширений

Если файл вообще не имеет расширения, этот шаг может не понадобиться, но я включаю его, потому что если вы пытаетесь ИЗМЕНИТЬ тип файла от одного типа к другому, то вам нужно сделать это. Теперь щелкните правой кнопкой мыши на вашем файле и выберите Rename,

Перейдите к концу имени и введите .XXX или любой другой тип файла, которым вы хотите, например, .TXT для текстовых файлов, .XLS для файлов Excel и т. Д. Очевидно, что файл должен быть изначально из той программы, что вы меняете расширение файла тоже. В моем случае текстовый файл был из Excel, поэтому я добавил это расширение обратно.

Как Пакетное Переименование Файловых Расширений

Итак, как вы переименовываете несколько расширений файлов одновременно? Если у вас есть каталог, полный файлов, которые необходимо изменить с .PNG на .JPG, это займет вечность, используя метод, описанный выше. К счастью, есть несколько различных способов, которыми мы можем изменить расширение файла для нескольких файлов одновременно.

Командная строка

Для тех из вас, кто знаком с командной строкой, есть очень простая команда, которую вы можете использовать для выполнения очень простых задач переименования файлов. В командной строке вы можете использовать две команды: жэнь а также переименование, Оба они делают одно и то же, так что это просто предпочтение, которое вы используете.

Если у вас есть папка с кучей JPG внутри, и вы хотите изменить расширение файла, например, на PNG, введите следующую команду:

ren * .jpg * .jpg

переименовывать файлы

Как вы можете видеть выше, команда изменила все файлы в этом каталоге с расширением JPG на файлы с расширением PNG. Вы можете получить больше информации о том, как использовать команду ren из Веб-сайт Microsoft,

Bulk Rename Utility

Если командная строка звучит устрашающе, то есть пара полезных утилит переименования файлов, которые сделают работу за вас всего несколькими щелчками мыши. Одним из моих любимых является Bulk Rename Utility потому что это единственная наиболее полная утилита переименования файлов.

утилита массового переименования

Да, интерфейс абсолютно забит пакетом с опциями, которые практически не имеют смысла, если вы не прочитаете весь документ с сайта. Однако для нашей цели все, о чем мы должны беспокоиться, это поле с надписью Расширение (11) внизу справа. Изменить это с Одни и те же в Исправлена и затем введите новое расширение, которое вы хотите. Вы увидите, что окно списка покажет вам новое имя файла сразу перед тем, как вы внесете изменения. Нажмите на Rename кнопка и все.

Я упомянул об этом инструменте, хотя для нашей цели это излишне, потому что это действительно полезная утилита, которую некоторые могут заинтересовать, если хотят переименовать тысячи фотографий с такими именами, как DSC00x, IMG00x и т. Д.

Продвинутый Renamer

Еще одна хорошая программа, которая также требует немного чтения, чтобы выяснить это Продвинутый Renamer, К счастью, на обоих сайтах есть руководства пользователя и учебные пособия. Также я объясню процесс изменения расширения файла здесь. Как только вы установите его, нажмите кнопку Добавить кнопку, чтобы добавить свои файлы или добавить папку, которая добавит все файлы из этой папки в список.

продвинутый переименователь

Теперь, чтобы выполнить какие-либо действия в этом списке, вы должны добавить методы в левой панели. Вы можете добавить несколько методов для сложного переименования файлов и папок. Мы хотим нажать Добавить метод а затем выберите Новое имя,

добавить метод переименования

Теперь идите вперед и введите новое расширение, которое вы хотели бы в поле сверху, а затем измените Применить к коробка внизу расширение вместо имя,

изменить расширение файла

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

инструмент переименования файлов

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

Bulk Extension Changer

Если вы хотите просто, Bulk Extension Changer это программа для вас. Все, что вам нужно сделать, это три вещи: сначала выберите папку, в которой находятся файлы, затем установите текущее и заменяемое расширение, а затем просто нажмите Идти кнопка.

насыпной чейнджер

Единственный вариант, если вы хотите включить подкаталоги или нет. На втором шаге вы можете добавить несколько правил замены, если в вашей папке есть файлы разных типов, и вы хотите проверить несколько файлов одновременно.

Надеемся, что этих вариантов достаточно для любых ваших нужд, связанных с переименованием расширений файлов. Если у вас есть какие-либо вопросы, не стесняйтесь оставлять комментарии. Наслаждайтесь!

Читайте также: