2013-09-19 4 views
0

Я создаю установочные обертки для развертывания программного обеспечения и имею некоторые проблемы с получением кода ошибки при запуске MSI с использованием msiexec. Пожалуйста, возьмите следующий пример из моей строки установки:Получить код возврата Msiexec

Run(msiexec /i "' & @WorkingDir & '\install_flash_player_11_active_x.msi" TRANSFORMS="' & @WorkingDir & '\AdobeFlash_ActiveX.mst" /qn /norestart', @WorkingDir, @SW_HIDE) 

В AutoIT, Run следует установить @error ненулевого, если ошибка в установке происходит. Однако я заметил, что даже если установка завершилась неудачей, @error установлен в 0, и поэтому мой источник считает это успешным. Я убежден, что эти коды возврата основаны на запуске Msiexec, а не на установке Msiexec. В свою очередь, для меня практически невозможно правильно сообщать о неудачных установках.

Если у кого-то есть какие-либо потенциальные решения для этого, будем признательны.

ответ

2

Значение @error от Run сообщает только, была ли программа запущена правильно. Затем программа запускается в фоновом режиме, и сценарий продолжает выполнение.

Если вам не нужно выполнять какую-либо обработку во время установки msi, например, мышь или клавиатура, то использование RunWait вернет код выхода из программы.

В качестве альтернативы, если вам нужно использовать Run, то после выполнения фоновой обработки используйте ProcessWaitClose, который возвращает код выхода программы в @extended.

+0

Именно то, что мне нужно. Большое спасибо. – JHamill

Смежные вопросы