Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Как заставить bat-файл ждать завершение определенного процесса и выполнение следующей (http://forum.oszone.net/showthread.php?t=354165)

rafka 07-09-2023 11:43 3015261

Как заставить bat-файл ждать завершение определенного процесса и выполнение следующей
 
Добрый день!
Как заставить bat-файл ждать завершение определённого процесса и выполнение следующей команды?

Допустим я хочу установить Автокад. После успешного установки Автокада закрывался установочный Setup.exe и продолжалось следующая команда?

Petya V4sechkin 07-09-2023 12:07 3015264

rafka, команда start /wait.

rafka 07-09-2023 12:51 3015269

Цитата:

Цитата Petya V4sechkin
команда start /wait. »

Это не подходит

Petya V4sechkin 07-09-2023 13:06 3015270

rafka, что именно не подходит?

rafka 07-09-2023 13:18 3015274

Цитата:

Цитата Petya V4sechkin
что именно не подходит? »

с этим кодом программа запускается, но как только готовится к установки и принимаешь лицензии и условии, то, до установки закрывается Бат файл, так как в конце стоит :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 3015292

вы уже используете значит знаете про taskkill.exe

пора добавить tasklist.exe и цикл и все будет как задумано

rafka 07-09-2023 17:22 3015293

Цитата:

Цитата Serguei Kouzmine
пора добавить tasklist.exe и цикл и все будет каа задумано »

Вот именно что куда добавить taskkill /im Setup.exe /f > nul я не знаю.

Что бы тасккилл работал надо же перед ним какую то команду написать что бы проверил закончился ли этот установка или нет.

Serguei Kouzmine 07-09-2023 17:41 3015296

точно - пора добавить tasklist.exe и цикл и все

вам нужна помощь ?

rafka 07-09-2023 17:46 3015297

Цитата:

Цитата Serguei Kouzmine
вам нужна помощь ? »

Да , если вам не трудно!

Serguei Kouzmine 07-09-2023 17:46 3015298

ваша задача довольно специфическая - слишком узок круг
но похожее было недвано
делал пулл реквест к полезной праммроге мноочнгопотой консиивер флак где это было нужно

https://github.com/melk0r64/Resample.../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


приведенный фрагмент кода как у оригинального проекта - этот код можно оптимизировать но для вашей узкой задачи надеюсь подойдет


Время: 23:57.

Время: 23:57.
© OSzone.net 2001-