Пакетное копирование и регистрация .DLL и .INF
Коллеги, есть две папки. В одной - .inf файлы, во второй - .dll
Нужно их скопировать в определённые директории и зарегистрировать. Все, пакетом. Как это можно сделать используя скриптовые языки. (Желательно средствами CMD/BAT) ? Путь для копирования: Код:
%windir%\inf Спасибо! |
shao, поясните пожалуйста, что значит «зарегистрировать»? Про *.dll ещё понятно; наверное это:
Код:
regsvr32.exe <bla-bla-bla.dll> А *.inf? К ним понятие «зарегистрировать» вроде как нельзя отнести. Речь идёт про Install? Код:
rundll32.exe setupapi,InstallHinfSection DefaultInstall 132 <bla-bla-bla.inf> Код:
rundll32.exe advpack.dll,LaunchINFSection <bla-bla-bla.inf>, DefaultInstall |
Iska, извините , пропустил в фразе
Цитата:
Нужно было так Цитата:
Подробнее: Рассмотрим вариант, где это - пакет драйверов. 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" |
Цитата:
Код:
for /f "delims=" %%a in ('xcopy /y "0022\*.dll" "%windir%\system32\" ^| findstr /i "\\.*\.dll"') do regsvr32.exe /s "%windir%\system32\%%~nxa" |
Наверное, "%windir%\system32\%%~nxa" - лишнее. Можно просто "%%~nxa".
regsvr32 без маршрута регистрирует библиотеки именно в системной папке. |
SendMessage,
копируется, но не регистрируется ! Убрал " s " в " regsvr32.exe /s " - нет запроса на подтверждение регистрации..... |
shao, не могу воспроизвести Вашу ошибку. У меня все работает.
Цитата:
Если ничего нет - значит у Вас не отрабатывает regsvr32. Попробуйте указать полный маршрут к нему. |
Цитата:
Попробую прописать путь...... 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 |
shao, а так:
Код:
for /f "delims=" %%a in ('xcopy /y "*.dll" "%windir%\system32\" ^| findstr /i "[.]dll$"') do %windir%\system32\regsvr32.exe /s "%windir%\system32\%%~nxa" |
Цитата:
Отлично, работает ! спасибо! Ещё два вопроса пожалуйста: 1. Можете объяснить эти: Код:
...^| findstr /i ".dll"... Код:
^| findstr /i "\\.*\.dll" Код:
"%windir%\system32\%%~nxa" 2.Install и Active Install для *.inf как реализовать ? просто изменить в Вашем коде соответствующую команду и расширение ? |
Цитата:
Цитата:
Цитата:
Код:
for /f "delims=" %%a in ('xcopy /y "*.inf" "%windir%\system32\" ^| findstr /i "[.]inf$"') do %windir%\system32\rundll32.exe setupapi,InstallHinfSection DefaultInstall 132 "%windir%\system32\%%~nxa" |
Цитата:
Скажите , а почему в Install так: Код:
^| findstr /i "[.]inf$" А так, нельзя ? Код:
^| findstr /i ".inf" |
Цитата:
Цитата:
|
Время: 07:58. |
Время: 07:58.
© OSzone.net 2001-