|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Нужна помощь в создании bat-ника для распаковки и переименования файлов/папок |
|
CMD/BAT - [решено] Нужна помощь в создании bat-ника для распаковки и переименования файлов/папок
|
Ветеран Сообщения: 2153 |
Не пинайте, если что не так! Я ещё не волшебник, я только учусь! :-)
Проблема в следующем: есть постоянно увеличивающийся набор самораспаковывающихся exe-шников со схожими именами типа Fileconstant1XXXXXXFileconstant2.exe , причём, в именах всех этих файлов, те куски, что обозначены Fileconstant1 и Fileconstant2 , всегда одинаковы для всех файлов, а куски, обозначенные символами XXXXXX , у разных файлов разные. Необходимо распаковать exe-файлы, а из получившейся кучи выбрать файлы .msp и каждый переименовать в соответствии с названием XXXXXX-часи того exe-шника, из которого .msp-файл извлечён. Проблема осложняется тем, что, во-первых, exe-шники должны распаковываться с ключами /Q /C /T:C:\Temp , а во-вторых, файлы .msp внутри разных exe-шников могут иметь одинаковые имена, поэтому, при простом извлечении содержимого всех exe-шников в общую кучу часть .msp файлов затирается. Пытаюсь смастерить для этого дела bat-ник, но нормального результата так и не добился, никак не удаётся создать маску для имени exe-шников и вычленить из них эту XXXXXX. SET Namepath=%C:\Temp SET Namefile0="Fileconstant1??????Fileconstant2.exe" SET Namefile1=%Fileconstant1??????Fileconstant2.exe:~0,13% SET Namefile2=%Fileconstant1??????Fileconstant2.exe:~13,6% SET Namefile3=%Fileconstant1??????Fileconstant2.exe:~-17% SET Namefile4=%Namefile2% @START "%Namefile0% /Q /C /T:C:\Temp" - не работает REM FOR %%s IN (*.exe) DO %%s "/Q /C /T:C:\Temp" - затирает файлы .msp REM FOR %%h IN (%Namepath%\*.msp) DO REN "%Namepath%\%%~nx1" "%Namefile4%.msp" - не работает P.S. Разумеется, в названиях exe-шников XXXXXX заменены на ?????? для маски. |
|
Отправлено: 20:34, 09-05-2009 |
Ветеран Сообщения: 604
|
Профиль | Отправить PM | Цитировать |
------- Отправлено: 09:08, 10-05-2009 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 2153
|
Профиль | Отправить PM | Цитировать Maza Faka, большое спасибо за помощь! Попробовал Ваш вариант, вот что получилось: файл .msp, извлечённый из первого exe-шника, нормально извлекается и переименовывается в имя exe-шника, остальные файлы .msp (т.е. извлечённые из других exe-шников) остаются не переименованными и при этом всё равно появляется сообщение о перезаписи одноимённых файлов.
P.S. А что означают ключи /F /Q в команде DEL? Просто почему-то у меня DEL /? ничего не выдаёт, поэтому никак не могу до них добраться. |
------- Отправлено: 12:38, 11-05-2009 | #3 |
Новый участник Сообщения: 7
|
Профиль | Отправить PM | Цитировать Цитата Nun-Nun:
/Q Отключение запроса на подтверждение при удалении файлов. |
|
Отправлено: 18:29, 11-05-2009 | #4 |
Ветеран Сообщения: 2153
|
Профиль | Отправить PM | Цитировать Сделал вот такое "изобретение", но всё равно переименовывается только перый файл .msp и ещё выдаётся сообщение о том, что "Файл с таким именем уже существует или не найден":
Set NamePathTemp=C:\Temp\1 Set NamePath=C:\Temp Del /F /Q %NamePathTemp%\*.msp For %%A In (*.exe) Do ( %%A /Q /C /T:%NamePathTemp% For %%B In (%NamePathTemp%\*.msp) Do (Move %%B %NamePath% For %%C In (%NamePathTemp%\*.*) Do (Del /F /Q %%C For %%D In (%NamePath%\*.msp) Do (Ren %%D %%~nA.msp) ) ) ) |
|
------- Отправлено: 19:10, 12-05-2009 | #5 |
Ветеран Сообщения: 2153
|
Профиль | Отправить PM | Цитировать |
------- Отправлено: 13:41, 13-05-2009 | #6 |
Ветеран Сообщения: 2153
|
Профиль | Отправить PM | Цитировать Тему можно закрыть! Большое всем спасибо за помощь!
|
------- Отправлено: 15:45, 14-05-2009 | #7 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Прочие - Программы для массового переименования каталогов и файлов | Daiv | Программное обеспечение Windows | 39 | 17-06-2011 16:33 | |
[решено] Выполнение bat'ника на Рабочем столе | ZeroCrash | AutoIt | 5 | 04-07-2009 22:55 | |
CMD/BAT - [решено] Создание CMD/BAT файла для удаления лишних папок | Vsirf | Скриптовые языки администрирования Windows | 4 | 04-06-2009 20:37 | |
Любой язык - [архив] Нужна помощь в написании BAT | CMD | VBS | WSH файлов | 0bject | Скриптовые языки администрирования Windows | 614 | 19-01-2009 21:58 | |
Прочее - Нужна помощь в создании дочерних доменов | buhanov | Сетевые технологии | 7 | 17-03-2008 08:09 |
|