Если у вас есть msi, который вы хотите удалить из командной строки, выполните MsiExec.exe /qn /X{26A24AE4-039D-4CA4-87B4-2F83217045F0} /norestart
например, возвращается немедленно. Но msiexec.exe работает некоторое время, возможно, несколько минут. Итак, если я пишу сценарий для этого, чтобы потом выполнить установку - как мне узнать, что она выполнена? Я не могу просто смотреть msiexc.exe, потому что это тоже служебный процесс, поэтому никогда не уйду ...
Коды ошибок msiexec задокументированы. Вот. Когда вы получаете код ошибки, например, ноль означает успех, msiexec считает себя выполненным.
Чтобы записать коды ошибок, можно, например, обернуть выполнение в PowerShell, например done Вот (бесстыдное копирование / вставка кода):
(Start-Process -FilePath "msiexec.exe" -ArgumentList "<<whatever>>" -Wait -Passthru).ExitCode
Измените в соответствии с вашими потребностями.
Используйте команду «start» с / wait, чтобы дождаться завершения процесса.
start "" /wait msiexec /x ...
"" - это обходной путь, если следующие атрибуты содержат кавычки. http://ss64.com/nt/start.html