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

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

Ответить
Настройки темы
CMD/BAT - [решено] Пакетное копирование и регистрация .DLL и .INF

Аватара для shao

Ветеран


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

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


Коллеги, есть две папки. В одной - .inf файлы, во второй - .dll
Нужно их скопировать в определённые директории и зарегистрировать. Все, пакетом.
Как это можно сделать используя скриптовые языки. (Желательно средствами CMD/BAT) ?

Путь для копирования:
Код: Выделить весь код
%windir%\inf
и
%windir%\system32
соответственно...

Спасибо!

Отправлено: 03:38, 29-08-2011

 

Ветеран


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

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


shao, поясните пожалуйста, что значит «зарегистрировать»? Про *.dll ещё понятно; наверное это:
Код: Выделить весь код
regsvr32.exe <bla-bla-bla.dll>
(если в *.dll наличествует соответствующая функция). Или это какие-то драйвера (судя по совместному упоминанию inf-dll)?

А *.inf? К ним понятие «зарегистрировать» вроде как нельзя отнести. Речь идёт про Install?
Код: Выделить весь код
rundll32.exe setupapi,InstallHinfSection DefaultInstall 132 <bla-bla-bla.inf>
Про Active Install?
Код: Выделить весь код
rundll32.exe advpack.dll,LaunchINFSection <bla-bla-bla.inf>, DefaultInstall
Дайте чуть более подробную информацию о том, что сие вообще есть.
Это сообщение посчитали полезным следующие участники:

Отправлено: 05:37, 29-08-2011 | #2



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

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


Аватара для shao

Ветеран


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

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


Iska, извините , пропустил в фразе
Цитата shao:
Нужно их скопировать в определённые директории и зарегистрировать. »
.....
Нужно было так
Цитата shao:
Нужно их скопировать в определённые директории инсталлировать и зарегистрировать. »
- писал полусонный (работа....). ну Вы и так всё поняли и откорректировали

Подробнее:
Рассмотрим вариант, где это - пакет драйверов.
DLL-ки имеют соответствующую функцию для регистрации,
а *.inf - если можно - рассмотрим два варианта: - как Вы указали.
Install и Active Install..
Папки: 0011 и 0022.
В них, соответственно 001.inf, 002.inf.....020.inf и 001.dll, 002.dll.........020.dll - если уж поподробнее.......

как регистрировать и инсталлировать через regsvr32, setupapi , advpack - понятно.
Не понятно , как это сделать пакетно. Все сразу с копированием в нужную директорию.

Ну, например :
Код: Выделить весь код
xcopy /y "0022\*.dll" "%windir%\system32"
,а как зарегистрировать именно те файлы , которые были скопированы ?

Последний раз редактировалось shao, 29-08-2011 в 13:08.


Отправлено: 08:00, 29-08-2011 | #3


Старожил


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

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


Цитата shao:
Ну, например :
Код:
xcopy /y "0022\*.dll" "%windir%\system32"
,а как зарегистрировать именно те файлы , которые были скопированы ? »
Код: Выделить весь код
for /f "delims=" %%a in ('xcopy /y "0022\*.dll" "%windir%\system32\" ^| findstr /i "\\.*\.dll"') do regsvr32.exe /s "%windir%\system32\%%~nxa"

Отправлено: 14:10, 29-08-2011 | #4


Старожил


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

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


Наверное, "%windir%\system32\%%~nxa" - лишнее. Можно просто "%%~nxa".
regsvr32 без маршрута регистрирует библиотеки именно в системной папке.
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:49, 29-08-2011 | #5


Аватара для shao

Ветеран


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

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


SendMessage,
копируется, но не регистрируется !
Убрал " s " в " regsvr32.exe /s " - нет запроса на подтверждение регистрации.....

Отправлено: 18:27, 29-08-2011 | #6


Старожил


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

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


shao, не могу воспроизвести Вашу ошибку. У меня все работает.

Цитата shao:
нет запроса на подтверждение регистрации..... »
Запроса и не должно быть - только сообщение об успешной регистрации. Или же собщение о неуспешности.
Если ничего нет - значит у Вас не отрабатывает regsvr32. Попробуйте указать полный маршрут к нему.

Последний раз редактировалось SendMessage, 30-08-2011 в 01:26.

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

Отправлено: 00:53, 30-08-2011 | #7


Аватара для shao

Ветеран


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

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


Цитата SendMessage:
Запроса и не должно быть - только сообщение об успешной регистрации. Или же собщение о неуспешности »
Ни того, ни другого - не было !
Попробую прописать путь......

UPD:

Сделал так :
Код: Выделить весь код
for /f "delims=" %%a in ('xcopy /y "*.dll" "%windir%\system32\" ^| findstr /i "\\.*\.dll"') do %windir%\system32\regsvr32.exe /s "%windir%\system32\%%~nxa"
Без изменений. Копируется , но не регистрируется.
Если указываю каждый файл:
Код: Выделить весь код
regsvr32.exe /s %windir%\system32\001.dll
Тогда всё в порядке - регистрация проходит.....

Отправлено: 17:48, 30-08-2011 | #8


Аватара для El Sanchez

Ветеран


Contributor


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

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


shao, а так:
Код: Выделить весь код
for /f "delims=" %%a in ('xcopy /y "*.dll" "%windir%\system32\" ^| findstr /i "[.]dll$"') do %windir%\system32\regsvr32.exe /s "%windir%\system32\%%~nxa"

Последний раз редактировалось El Sanchez, 30-08-2011 в 20:18. Причина: изменил регексп

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

Отправлено: 18:33, 30-08-2011 | #9


Аватара для shao

Ветеран


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

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


Цитата El Sanchez:
shao, а так: »
А так -
Отлично, работает ! спасибо!

Ещё два вопроса пожалуйста:

1. Можете объяснить эти:
Код: Выделить весь код
...^| findstr /i ".dll"...
Код: Выделить весь код
^| findstr /i "\\.*\.dll"
куски кода и этот:
Код: Выделить весь код
"%windir%\system32\%%~nxa"
"а" - это атрибуты ? Зачем ?

2.Install и Active Install для *.inf как реализовать ?
просто изменить в Вашем коде соответствующую команду и расширение ?

Отправлено: 19:14, 30-08-2011 | #10



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
VBS/WSH/JS - [решено] Копирование capicom.dll и ее регистрация xsxPeguckAxsx Скриптовые языки администрирования Windows 7 04-04-2018 09:17
Регистрация *.dll SiNiK Хочу все знать 3 29-06-2012 14:28
Разное - [решено] регистрация DLL ya.dever Microsoft Windows 7 3 02-07-2011 05:46
CMD/BAT - Копирование, регистрация и удаление библиотек Toltec Скриптовые языки администрирования Windows 8 07-12-2009 11:54
Регистрация dll-ок в домене Serhii Microsoft Windows NT/2000/2003 8 16-07-2008 18:51




 
Переход