|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Копирование, регистрация и удаление библиотек |
|
CMD/BAT - Копирование, регистрация и удаление библиотек
|
Новый участник Сообщения: 5 |
Здравствуйте, подскажите пожалуйста как решить такую задачу:
Есть папка в которой лежит proga.ехе и 10 штук dll-ок (1.dll, 2.dll,...10.dll) 8 из 10 dll-ок нужно скопировать в папку "%windir%\system32" и 6 из 8-ми скопированных зарегистрировать командой regsvr32 /s 1.dll, regsvr32 /s 2.dll, и т.д. Hо если в system32 эти библиотеки уже есть, то копировать их и регестрировать не надо. Потом нужно запустить proga.ехе, а после закрытия программы дерегестрировать скопированные библиотеки и удалить их из system32. Как можна реализовать такую задачу пакетным файлом? Зарание спасибо. |
|
Отправлено: 15:54, 01-12-2009 |
Сообщения: 53585
|
Профиль | Отправить PM | Цитировать Toltec, пример для одной библиотеки:
|
Отправлено: 17:03, 01-12-2009 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Сотрудник Microsoft Сообщения: 56
|
Профиль | Сайт | Отправить PM | Цитировать Цитата Petya V4sechkin:
К сожалению не возьмусь писать это на batch, но на powershell будет так: $sourcedir = "\\server\share" $dlls = dir $sourcedir | select -expand name | where {-not (test-path "$env:windir\system32\$_")} $dlls | foreach {cp "$sourcedir\$_" "$env:windir\system32\$_"; regsvr32 /s "$env:windir\system32\$_"} proga.exe | out-null $dlls | foreach {del "$env:windir\system32\$_"} |
|
Отправлено: 17:41, 01-12-2009 | #3 |
Новый участник Сообщения: 5
|
Профиль | Отправить PM | Цитировать Цитата Xaegr:
Xaegr, к сожалению с PowerShell не знаком, не знаю даже что это, но Спасибо за понимание и помощь... Petya V4sechkin, Спасибо. Может можно сделать так, чтоб создался список скопированных библиотек, а потом по списку их дерегистрировать и удалить? Не знаю реально ли такое реализовать? |
|
Отправлено: 18:06, 01-12-2009 | #4 |
Сообщения: 53585
|
Профиль | Отправить PM | Цитировать Toltec, простейший вариант:
|
|
Отправлено: 10:48, 02-12-2009 | #5 |
Новый участник Сообщения: 5
|
Профиль | Отправить PM | Цитировать Petya V4sechkin, спасибо большое! Только скажите пожалуйста куда в этом скрипте прописать другие библиотеки? Я так понял это пример для одной, а для нескольких нужно написать так ? :
@Echo Off SetLocal EnableExtensions Set Copied_1= If Not Exist %windir%\system32\1.dll ( Copy 1.dll %windir%\system32 Regsvr32 /s %windir%\system32\1.dll Set Copied_1=1 ) Set Copied_2= If Not Exist %windir%\system32\2.dll ( Copy 2.dll %windir%\system32 Regsvr32 /s %windir%\system32\2.dll Set Copied_2=2 ) Start /Wait proga.exe If Defined Copied_1 ( Regsvr32 /u /s %windir%\system32\1.dll Del /Q %windir%\system32\1.dll ) If Defined Copied_2 ( Regsvr32 /u /s %windir%\system32\2.dll Del /Q %windir%\system32\2.dll ) |
Отправлено: 11:01, 02-12-2009 | #6 |
Сообщения: 53585
|
Профиль | Отправить PM | Цитировать Toltec, да, так нормально.
|
Отправлено: 11:04, 02-12-2009 | #7 |
Новый участник Сообщения: 5
|
Профиль | Отправить PM | Цитировать Petya V4sechkin, Спасибо огромное за помощь!!!
|
Отправлено: 11:13, 02-12-2009 | #8 |
Новый участник Сообщения: 5
|
Профиль | Отправить PM | Цитировать Здравствуйте, мне конечно не удобно еще раз переспрашивать и забирать ваше время, но последний скрипт у меня не работает...
Я сделал новый, на основе первого ответа от Petya V4sechkin, этот все делает как надо, только часть удаления хочется подправить, т.е. хочется, чтобы удалял только скопированные библиотеки... Есть два вопроса: 1. Можно сделать так, чтобы в папке, рядом с пакетным файлом, создавался текстовый файл (1.тхт), со списком скопированных библиотек ? (Дальше я уже сам, сделаю удаление по этому списку...) 2. команда If Not Exist %windir%\system32\1.dll ( Copy 1.dll %windir%\system32 Regsvr32 /s %windir%\system32\1.dll Зарание спасибо! |
Отправлено: 11:54, 07-12-2009 | #9 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Конкурс - Подробное руководство по использованию библиотек | OSZone | Microsoft Windows 7 | 10 | 11-12-2009 22:11 | |
Как сделать через ГП автоматическое копирование библиотек в папку system32 ? | zegerman | Автоматическая установка приложений | 7 | 01-12-2009 16:15 | |
Изучение библиотек Windows | morgan1991 | Хочу все знать | 7 | 11-03-2009 03:22 | |
Лицензирование библиотек | Alexander_Grig | Лицензирование продуктов Microsoft | 10 | 02-06-2007 14:59 | |
Сборка библиотек | 1Space | Программное обеспечение Linux и FreeBSD | 1 | 08-02-2007 21:24 |
|