Показать полную графическую версию : Как заставить bat-файл ждать завершение определенного процесса и выполнение следующей
Добрый день!
Как заставить bat-файл ждать завершение определённого процесса и выполнение следующей команды?
Допустим я хочу установить Автокад. После успешного установки Автокада закрывался установочный Setup.exe и продолжалось следующая команда?
Petya V4sechkin
07-09-2023, 12:07
rafka, команда start /wait.
команда start /wait. »
Это не подходит
Petya V4sechkin
07-09-2023, 13:06
rafka, что именно не подходит?
что именно не подходит? »
с этим кодом программа запускается, но как только готовится к установки и принимаешь лицензии и условии, то, до установки закрывается Бат файл, так как в конце стоит :END. И соответственно программа не устанавливается и не происходить :Clean
start /wait C:\Users\WDAGUtilityAccount\Desktop\Autocad\Setup.exe
cls
:Clean
reg delete HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Run /v "Autodesk Genuine Service " /f
reg delete HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Run /v "Autodesk Desktop App" /f
del "C:\Users\Public\Desktop\Autodesk Desktop App.lnk"
:END
cls & exit
timeout 10 > nul
taskkill /im cmd.exe /f > nul
А мне надо что бы после нажатии на установить, батник дождалась до установки программы и потом закрывал установочный Setup.exe и продолжалось следующая команда. то есть :Clean
Serguei Kouzmine
07-09-2023, 17:18
вы уже используете значит знаете про taskkill.exe
пора добавить tasklist.exe и цикл и все будет как задумано
пора добавить tasklist.exe и цикл и все будет каа задумано »
Вот именно что куда добавить taskkill /im Setup.exe /f > nul я не знаю.
Что бы тасккилл работал надо же перед ним какую то команду написать что бы проверил закончился ли этот установка или нет.
Serguei Kouzmine
07-09-2023, 17:41
точно - пора добавить tasklist.exe и цикл и все
вам нужна помощь ?
вам нужна помощь ? »
Да , если вам не трудно!
Serguei Kouzmine
07-09-2023, 17:46
ваша задача довольно специфическая - слишком узок круг
но похожее было недвано
делал пулл реквест к полезной праммроге мноочнгопотой консиивер флак где это было нужно
https://github.com/melk0r64/Resampler-Script/blob/main/ReSampler.bat
:WAIT_FOR_PROCESS
rem Wait for one process to finish
PING -n 2 127.0.0.1 >NUL
for /f "tokens=3" %%a in ('TASKLIST /FI "WINDOWTITLE eq C:\ReSampler\ReSampler.exe" /NH') do (
if "%%a" == "C:\ReSampler\ReSampler.exe" (
rem There is still at least one instance of the resampler tool running
goto :WAIT_FOR_PROCESS
)
)
set "PROCESS_COUNTER=0"
exit /B
goto :EOF
приведенный фрагмент кода как у оригинального проекта - этот код можно оптимизировать но для вашей узкой задачи надеюсь подойдет
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.