Я хотел бы удалить несколько программ с помощью пакетной обработки и дождаться завершения каждой программы до удаления другой. Проблема в том, что некоторые из этих деинсталляторов не вызывают другие программы и не находятся в диспетчере задач, поэтому START/WAIT не будет работать. Любые идеи были бы полезны.Подождите, пока деинсталлятор завершит работу с пакетом
ответ
Предполагая, что вы используете Windows, и что эти программы были установлены с .msi пакетами,
удаления программы в пакетном файле так легко, как с помощью MSIEXEC. Полная документация на использовании MSIEXEC можно найти на Microsoft Technet
Чтобы найти GUID из установки, что вы хотите удалить, просто использовать WMIC в командной строке:
wmic product get > C:\InstalledProgramsList.txt
Затем перейдите к C: \ InstalledProgramsList. txt и используйте ctrl + F, чтобы найти нужный продукт и соответствующий GUID
Спасибо за ваш быстрый ответ. 2 вещи: я не вижу в ссылке, где я могу подождать, пока установка не будет выполнена, прежде чем продолжить. Кроме того, мои программы имеют 64 бит, используя установщик, который не регистрируется в WMIC. – Wajo357
@ Wajo357 Если вы создадите пакетный скрипт для Windows с msiexec, каждая команда будет запускаться последовательно, когда предыдущая команда будет завершена. Кроме того, 'wmic product get' должен работать для всех приложений x64 и x86, установленных как' .msi packages' –
@ Wajo357 А я вижу, что вы работаете с пользовательским установщиком. Попробуйте выполнить поиск через: HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Uninstall' ИЛИ 'HKEY_CLASSES_ROOT \ Installer \ Products' –
Ok. Кажется, я понял. Это код, который я использую, где я создал подпрограмму, которая ждет завершения задачи.
:waitforuninstallation
timeout /T 1 /NOBREAK >nul
tasklist /FI "IMAGENAME eq %1" 2>NUL | find /I /N "%1">NUL
if %ERRORLEVEL% EQU 0 goto waitforuninstallation
exit /b
Это может быть вызвана с помощью:
call :waitforuninstallation PROGRAMNAME.exe
Где ProgramName это задача, которая выполняется в диспетчере задач. Редактирование: сделана подпрограмма нести аргумент
- 1. COM Interop - Подождите, пока Excel завершит работу
- 2. Подождите, пока провайдер завершит работу до ввода состояния
- 3. Подождите, пока пользователь завершит взаимодействие с UITableView
- 4. Подождите, пока метод jQuery .html завершит рендеринг
- 5. Подождите, пока компонент React не завершит обновление
- 6. Подождите, пока WMIC завершит удаленный вызов
- 7. Подождите, пока AsyncTask завершит выполнение сценария
- 8. Подождите, пока модуль ModuleCatalog завершит загрузку модуля
- 9. Подождите, пока метод не завершит вызов метода
- 10. Как подождать, пока нить завершит свою работу
- 11. Подождите, пока пользователь не завершит ввод с помощью ngChange - AngularJS
- 12. Loopback и mocha: подождите, пока сервер завершит загрузку сценариев
- 13. Подождите, пока connman завершит настройку сети в системе sytemd
- 14. Подождите, пока модуль CasperJS завершит выполнение перед возвратом значения?
- 15. Android/Java - Подождите, пока AsyncTask завершит работу перед выполнением следующей функции.
- 16. Подождите, пока httpRequests не завершит передачу ответа - ParseServer
- 17. Подождите, пока jPlayer завершит загрузку файлов до продолжения цикла
- 18. Подождите, пока параллельный удаленный процесс завершит bash ssh
- 19. Подождите, пока приложение приложения JavaFX Thread завершит обработку событий?
- 20. как подождать, пока задача async завершит свою работу?
- 21. Как не остановится, пока нить завершит свою работу
- 22. Gulp: Подождите, пока экспресс-сервер начнет работу перед запуском тестов.
- 23. Подождите, пока jQuery show() закончит работу до продолжения функции?
- 24. Подождите, пока сигнал начнет работу (рабочий процесс amazon)
- 25. Подождите, пока мой поток не закончил
- 26. Подождите, пока каждая ASyncTask закончит работу перед выполнением следующего AsyncTask
- 27. Подождите, пока MediaScanner сканирует файл
- 28. Подождите, пока addClass выполнит
- 29. Подождите, пока не закончите?
- 30. Подождите, пока запрос выполняется
Если эти программы были установлены внутренне через пакет .msi, тогда, возможно, можно будет использовать 'start/wait MsiExec.exe/X {5481F163-B9E5-30A8-8441- 4DBBB87D6AA2} 'например. Точный код продукта можно найти с помощью 'reg query'. – wOxxOm
это не так. Это пользовательские деинсталляторы, в которых деинсталлятор даже не находится в диспетчере задач во время удаления. Я не уверен, какие программы он вызывает. – Wajo357
1. Строка удаления должна присутствовать в 'HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Uninstall' или' HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ Windows \ CurrentVersion \ Uninstall'. 2. Процесс должен быть видимым на вкладке «процессы» в диспетчере задач. – wOxxOm