Страница 1 из 1

Массовое переименование в подкаталогах

Добавлено: Сб май 14, 2022 23:36
Владислав997
Есть папка "Папка1"
В ней файлы
a.mp4
b.mp3
c.png

Есть папка "Папка2"
В ней файлы
a.jpg
b.png
c.jpg
d.jpg

Есть папка "Папка3"
В ней файлы
a.png
b.mp3

Нужно чтобы в итоге было так:
Папка1/01.mp4
Папка1/02.mp3
Папка1/03.png
Папка2/01.jpg
Папка2/02.png
Папка2/03.jpg
Папка2/04.jpg
Папка3/01.png
Папка3/02.mp3

P.S. на деле у меня 1000+ папок, с вложенными от 2 до 50 файлов в каждом. Поэтому я обращаюсь на этот форум за помощью.

Добавлено: Вс май 15, 2022 03:41
Monarch-LFV
Владислав997
Создайте текстовый *.bat файл со следующим содержимым:

Код: Выделить всё

@echo off
rem Параметры %P%S

SetLocal EnableDelayedExpansion
for %%A IN (%*) do (
  set c=0
  set path=%%A
  set path=!path:"=!
  CD %%A
  for %%K IN (*) do (
    set /a c+=1
    set count=0!c!
    set count=!count:~-2,2!
    rename "!path!\%%K" !count!%%~xK
  )  
)
Поместите на панель как кнопку и в параметрах укажите %P%S.
Далее выделить папки, в которых требуется такое переименование и нажать эту кнопку.
Обрабатывает только все файлы, находящиеся в первом уровне вложенности.
Если потребуется обработать все файлы, во всех уровнях вложенности (с рекурсией), то достаточно просто вызвать поиск (Alt+F7), найти все (пустое поле поиска) и выбрать "Файлы на панель", далее выделить все папки и нажать эту же кнопку. Во всех поддиректориях любой вложенности произойдет переименование.

Добавлено: Вс май 15, 2022 07:55
Владислав997
Ошибка в синтаксисе команды

Добавлено: Вс май 15, 2022 09:48
Monarch-LFV
Владислав997
У меня все нормально работает, закомментите первую строчку и в конце pause. В каком именно месте ошибка?
PS. Ошибка может вылетать если выделены не папки, а файлы. Выделите именно папки.