Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Переименование файлов

Ответить
Настройки темы
CMD/BAT - Переименование файлов

Новый участник


Сообщения: 3
Благодарности: 0

Профиль | Отправить PM | Цитировать


Добрый вечер!
Имеется софтина, генерирующая логи с названиями в формате AAAABBBBCCCC.log, где АААА и СССС - постоянные в данной папке части (СССС может вообще отсутствовать), BBBB - переменная часть, и её длина может варьироваться.

Примеры:
- папка А: modem1234.log, modem1344.log, modem4321.log, modemqwer.log...
- папка B: tempTTYaa.log, tempTRTaa.log, tempHHJaa.log, tempXXXaa.log...
- папка C: nco12bbb.log, nco1234bbb.log, nco123bbb.log...

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

- папка А: 1234.log, 1344.log, 4321.log, qwer.log...
- папка B: TTY.log, TRT.log, HHJ.log, XXX.log...
- папка C: 12.log, 1234.log, 123.log...

За один раз обрабатывается одна папка.
Можно ли сделать универсальный скрипт на все 3 типа имён, или сильно проще для каждого свой?
Прошу помощи.

Отправлено: 19:28, 09-12-2014

 

Ветеран


Сообщения: 874
Благодарности: 575

Профиль | Отправить PM | Цитировать


Цитата Verilog:
Можно ли сделать универсальный скрипт на все 3 типа имён <...>? »

Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

>nul chcp 1251

set "dir=D:\Test\Папка Z"
set const_1="modem" "temp" "nco"
set const_2="aa" "bbb"

>nul chcp 866

pushd "%dir%"
for /f "delims=" %%i in ('dir /a-d/b') do (
 set x=%%i
 for %%j in (%const_1%) do (
  set x=!x:*%%~j=!
  )
 for %%j in (%const_2%) do (
  set x=!x:%%~j%%~xi=!
  )
 ren "%%i" "!x:%%~xi=!%%~xi"
 )
popd

endlocal
exit /b

Отправлено: 21:00, 09-12-2014 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Новый участник


Сообщения: 3
Благодарности: 0

Профиль | Отправить PM | Цитировать


Спасибо, Georgio!
Но под универсальностью я понимал двухпроходный алгоритм, где сначала выявляются постоянные и переменная части, а уже затем, на основе результатов анализа, выполняется переименование, ибо просматривать множество файлов и определять эти части на глаз весьма утомительно. Приведённые мной примеры сильно упрощены для облегчения понимания сути, реальные имена длинные (30-40 символов) и содержат информацию о текущей конфигурации оборудования (название папки содержит примерно ту же информацию, но в расширенном виде, поэтому её дублирование в именах файлов избыточно), т. е. возможных сочетаний для частей AAAA и CCCC - великое множество. Поэтому и хотелось бы, чтобы скрипт определял их сам. Обрабатывать все папки (их значительно больше трёх) за раз не требуется, работаем только с текущей папкой.

Отправлено: 11:23, 10-12-2014 | #3


Ветеран


Сообщения: 874
Благодарности: 575

Профиль | Отправить PM | Цитировать


Возможно, кто-нибудь за это возьмется. Я -- нет.

Отправлено: 12:45, 10-12-2014 | #4


Новый участник


Сообщения: 3
Благодарности: 0

Профиль | Отправить PM | Цитировать


Понимаю. И на том спасибо.

Отправлено: 14:55, 10-12-2014 | #5



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Переименование файлов

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Переименование файлов B1010 Видео и аудио: обработка и кодирование 0 28-09-2014 11:38
CMD/BAT - [решено] Переименование файлов Smilejuli Скриптовые языки администрирования Windows 4 03-03-2014 18:43
CMD/BAT - Переименование файлов. gen0m.rsw Скриптовые языки администрирования Windows 1 15-10-2010 19:15
переименование файлов mask Программирование и базы данных 6 20-05-2003 00:53
Переименование файлов Pavelz Microsoft Windows NT/2000/2003 7 24-01-2003 10:32




 
Переход