Из присланного в ПМ, ответить решил здесь, т.к., информация может быть полезна и другим авторам аддонов...
Цитата:
Вы не могли бы пояснить одну странность в работе скрипта? Если в составе скрипта инсталлятора использую команду RunProgram="hidcon:cmd /c copy /y %NameInf% %WINDIR%\\INF\\%NameInf%" , то pnf-файл система не создаёт, а если использую RunProgram="hidcon:cmd /c Move /y %NameInf% %WINDIR%\\INF" , то проблема исчезает.
|
Проблема не связана непосредственно с используемой командой (
Copy или
Move), она связана
с результатами выполнения этих команд, с той разницей, которая возникает после их выполнения. После
Move в системе будет один файл
%NameInf% (в
%WINDIR%\\INF\\%NameInf%), а после
Copy их будет
два !!! (в
%WINDIR%\\INF\\%NameInf% и текущей временной папке модуля).
Если посмотреть команду запуска
%NameInf%
Код:
RunProgram="rundll32 advpack,LaunchINFSection %NameInf%,DefaultInstall,0"
то мы увидим, что запускаются разные файлы.
При
Copy будет запущен
%NameInf%, который лежит в текущей временной папке модуля, ибо путь прописан к нему. Точнее путь не указан и значит будет использован файл в текущей директории.
При
Move в текущей директории файла
%NameInf% нет, файл ищется по путям прописанным в переменной %PATH% и находится в
%WINDIR%\\INF\\%NameInf%.
Система создает pnf-файл при запуске inf-файла именно из предназначенной для этого в системе директории (
%WINDIR%\\INF) и не создает его при запуске inf-файла из временной папки модуля. Почему? Очевидно так решили разработчики системы, им виднее.
Цитата:
существует ли вообще возможность использования команды copy, не приводящая к проблеме с pnf ?
|
Существует. Нужно просто указать путь к
нужному (из двух) файлу:
Код:
RunProgram="rundll32 advpack,LaunchINFSection %WINDIR%\\INF\\%NameInf%,DefaultInstall,0"