@Zharkyn97

CMD/BAT — Пакетное переименование файлов(.jpg) в разных папках (BAT)?

Смотрите у меня есть папки:
asteklo1, asteklo2, asteklo3, asteklo4...
в каждой из них содержится по 2 файла (.jpg)
Мне нужен способ (тот же bat), для того чтобы пакетно переименовать все эти файлы (.jpg) -> в название папки и с нижним подчеркиванием с нумерацией файла
Пример:
папка "asteklo1", в нем должны находится "asteklo1_1" и "asteklo1_2"
и так с каждой папкой, кто-то шарит за эту тему?
я только создал пакетно все эти папки с разными названиями:
for /f %%i in (list.txt) do @md "%%~i"
ну естественно и в этом list.txt находились все названия папок строчками
  • Вопрос задан
  • 75 просмотров
Пригласить эксперта
Ответы на вопрос 2
2ord
@2ord
продвинутый чайник
Готового решения на CMD не подскажу - сам на Линуксе работаю.

Алгоритм:
Нужно пройтись по всем директориям по имени, начинающихся с "asteklo", для каждой из которых:
	сохранить имя директории в переменной
	обнулить счётчик порядкового номера в переменной
	В цикле, проходясь по каждому файлу в директории
		увеличить счётчик +1 в переменной
		составить новое имя файла в переменной: имя_директории "_" счётчик_порядкового_номера ".jpg"
		переименовать файл в новое имя

Справка: https://ss64.com/nt/for.html и https://en.wikibooks.org/wiki/Windows_Batch_Script...
Ответ написан
@res2001
Developer, ex-admin
Примерно так:
@echo off
setlocal enabledelayedexpansion
for /d %%a in (*) do (
  set "count=1"
  for %%b in ("%%~a\*.jpg") do (
     ren "%%~b" "%%~na_!count!%%~xb"
     set /a "count=!count! + 1"
  )
)

Сейчас под рукой винды нет - протестировать не могу.
Никаких файлов со списком папок не требуется. Скрипт проверяет все подпапки в текущей папке и переименовывает все jpg
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы