|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Переименование файлов |
|
CMD/BAT - Переименование файлов
|
Новый участник Сообщения: 3 |
Профиль | Отправить 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
|
Профиль | Отправить PM | Цитировать Цитата Verilog:
@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
|
Профиль | Отправить PM | Цитировать Спасибо, Georgio!
Но под универсальностью я понимал двухпроходный алгоритм, где сначала выявляются постоянные и переменная части, а уже затем, на основе результатов анализа, выполняется переименование, ибо просматривать множество файлов и определять эти части на глаз весьма утомительно. Приведённые мной примеры сильно упрощены для облегчения понимания сути, реальные имена длинные (30-40 символов) и содержат информацию о текущей конфигурации оборудования (название папки содержит примерно ту же информацию, но в расширенном виде, поэтому её дублирование в именах файлов избыточно), т. е. возможных сочетаний для частей AAAA и CCCC - великое множество. Поэтому и хотелось бы, чтобы скрипт определял их сам. Обрабатывать все папки (их значительно больше трёх) за раз не требуется, работаем только с текущей папкой. |
Отправлено: 11:23, 10-12-2014 | #3 |
Ветеран Сообщения: 874
|
Профиль | Отправить PM | Цитировать Возможно, кто-нибудь за это возьмется. Я -- нет.
|
Отправлено: 12:45, 10-12-2014 | #4 |
Новый участник Сообщения: 3
|
Профиль | Отправить PM | Цитировать Понимаю. И на том спасибо.
|
|
Отправлено: 14:55, 10-12-2014 | #5 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Переименование файлов | 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 |
|