Для начала хочу порекомендовать замечательную статью Урок bat-аники, благодаря которой я переделаю несколько BAT файлов.
r00.bat - r0000.bat, r0d.bat, r00cat.bat & r00catl.bat
-Числовые зкмены: x на 0x, xx на 0xx и xxx на 0xxx
переименовка файлов (ren) и папок (move) начинающихся с %1, где %1 - постоянная часть имени файла. может быть опущена Использование: r00.bat [filename] где filename - неизменяемая часть имени файла без расширения
Пример: r00.bat image переименует все файлы image0-image9 в image00-image09 соответственно
r00.bat - r0000.bat
-в текущем каталоге
r00.bat, r0000.bat и r0000.bat дают на выходе 0x, 0xx и 0xxx соответственно
Длина численной части в имени ВАТника определяет длину численной части в именах файлов на выходе. Все файлы добавляют по 1 знаку в имя, если необходимо преобразование из 1.jpg в 0001.jpg необходимо запустить все 3 последовательно.
r00.bat
с 0 по 9 - результат %10.*
Sample hide @echo off FOR /L %%f IN (0,1,9) DO ( ren %1%%f.* %10%%f.* move %1%%f %10%%f )r000.bat
с 00 по 99 - результат %100.*
Sample hide @echo off ::call r00 FOR /L %%f IN (0,1,9) DO ( ren %10%%f.* %100%%f.* move %1%%f %100%%f ) FOR /L %%f IN (10,1,99) DO ( ren %1%%f.* %10%%f.* move %1%%f %10%%f )r0000.bat
с 000 по 999 - результат %1000.*
Sample hide @echo off ::call r00 FOR /L %%f IN (0,1,9) DO ( ren %10%%f.* %100%%f.* move %1%%f %100%%f ) FOR /L %%f IN (10,1,99) DO ( ren %1%%f.* %10%%f.* move %1%%f %10%%f )r0d.bat
тоже что и r00.bat %1 - папка с файлами %2 - постоянная часть имени файла заход в %1 и переименовка файлов начинающихся с %2
Sample hide :: %1 - папка с файлами :: %2 - постоянная часть имени файла :: заход в %1 и переименовка файлов начинающихся с %2 cd %1 FOR /L %%f IN (0,1,9) DO ren %2%%f.* %20%%f.* cd ..r00cat.bat
иr00catl.bat
-в подкаталогах
используют файл r00.bat для Пример: r00.bat image Результат будет различен для двух файлов:
r00cat.bat
Обходит текущий каталог, все подкаталоги и все вложенные в них переименует все файлы image0-image9 в image00-image09 соответственно во всех каталагах начиная с текущей
Sample hide :: Обходит текущий каталог, все подкаталоги и все вложенные в них :: использует файл r00.bat :: %1 - постоянная часть имени файла :: переименовка файлов и папок начинающихся с %1 :: с 0 по 9 :: результат %10.* :: Использование: r00cat.bat filename :: где filename - неизменяемая часть имени файла без расширения :: Пример: r00.bat image :: переименует все файлы image0-image9 в image00-image09 :: соответственно во всех каталагах начиная с текущей for /R %%f IN (.) DO ( cd %%f call r00.bat %1 cd .. )r00catl.bat
Обходит все подкаталоги текущего каталога, но не вложенные в него переименует все файлы image0-image9 в image00-image09 соответственно во всех подкаталагах текущего каталога
Sample hide :: Обходит все подкаталоги текущего каталога, но не вложенные в него :: использует файл r00.bat :: %1 - постоянная часть имени файла :: переименовка файлов и папок начинающихся с %1 :: с 0 по 9 :: результат %10.* :: Использование: r00cat.bat filename :: где filename - неизменяемая часть имени файла без расширения :: Пример: r00.bat image :: переименует все файлы image0-image9 в image00-image09 :: соответственно во всех подкаталагах текущего каталога for /D %%f IN (*.*) DO ( cd %%f call r00.bat %1 cd .. )r00.bat
иr03.bat
- заменены r00cat.bat или r00catl.bat в связке с r00.batrUnCat.bat
-Избавление от вложенности
Переименовка файлов в подкаталогах и перемещение их на текущий уровень, с удалением самих подкаталогов. Формат имени фала на выходе: "ИмяКаталога-ИсходноеИмя.Расширение", если присутствует дополнительный вложенный подкаталог его указать, как параметр. Использование: rUnCat.bat [dir] где [dir] - имя вложенной папки
Пример: rUnCat.bat images было: site\ dir1\ images\ img01.jpg ... img0x.jpg ... dirX\ images\ img01.jpg ... img0x.jpg стало: site\ dir1-img01.jpg ... dir1-img0x.jpg ... dirX-img01.jpg ... dirX-img0x.jpgSample hide for /D %%d IN (*.*) DO ( cd %%d IF NOT "%1"=="" (cd %1) FOR %%f IN (*.*) DO ( ren %%f.* %%d-%%f.* move %%d-%%f.* .. ) IF NOT "%1"=="" ( cd .. rd %1 move *.* .. ) cd .. rd %%d )%1 - необязательный параметр, нужный для указания дополнительной вложеннности подкаталогов
dub.bat
- побайтовое сравнениеЕсть такая старая, но замечательная утилита dub.exe, но она работает только с короткими именами. Этот небольшой ВАТничек, который "укорачивает" имена
Sample hide @c:\util\dub %~s1 %~s2