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

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

Ответить
Настройки темы
CMD/BAT - [решено] Нужна помощь в создании bat-ника для распаковки и переименования файлов/папок

Аватара для Nun-Nun

Ветеран


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


Конфигурация

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


Не пинайте, если что не так! Я ещё не волшебник, я только учусь! :-)

Проблема в следующем: есть постоянно увеличивающийся набор самораспаковывающихся 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

 

Аватара для Maza Faka

Ветеран


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

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


Nun-Nun
Пример:
Код: Выделить весь код
@Echo Off

Set NamePath=C:\Temp

Del /F /Q %NamePath%\*.msp

For %%A In (*.exe) Do (
   %%A /Q /C /T:%NamePath%
   For %%B In (%NamePath%\*.msp) Do Ren %%B %%~nA.msp
)
Не тестировал!

-------
Сообщение помогло? Не забудьте нажать на Полезное сообщение

Это сообщение посчитали полезным следующие участники:

Отправлено: 09:08, 10-05-2009 | #2



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

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


Аватара для Nun-Nun

Ветеран


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

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


Maza Faka, большое спасибо за помощь! Попробовал Ваш вариант, вот что получилось: файл .msp, извлечённый из первого exe-шника, нормально извлекается и переименовывается в имя exe-шника, остальные файлы .msp (т.е. извлечённые из других exe-шников) остаются не переименованными и при этом всё равно появляется сообщение о перезаписи одноимённых файлов.

P.S. А что означают ключи /F /Q в команде DEL? Просто почему-то у меня DEL /? ничего не выдаёт, поэтому никак не могу до них добраться.

-------
Свобода не означает вседозволенность.


Отправлено: 12:38, 11-05-2009 | #3


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


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

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


Цитата Nun-Nun:
А что означают ключи /F /Q в команде DEL? »
/F Принудительное удаление файлов, доступных только для чтения.
/Q Отключение запроса на подтверждение при удалении файлов.

Отправлено: 18:29, 11-05-2009 | #4


Аватара для Nun-Nun

Ветеран


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

Профиль | Отправить 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


Аватара для Nun-Nun

Ветеран


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

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


Решение - в теме Нужна помощь в создании bat-ника для распаковки и переименования файлов/папок
HTML код: Выделить весь код
http://forum.oszone.net/thread-139964.html

-------
Свобода не означает вседозволенность.


Отправлено: 13:41, 13-05-2009 | #6


Аватара для Nun-Nun

Ветеран


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

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


Тему можно закрыть! Большое всем спасибо за помощь!

-------
Свобода не означает вседозволенность.


Отправлено: 15:45, 14-05-2009 | #7



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Прочие - Программы для массового переименования каталогов и файлов 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




 
Переход