Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Как заставить bat-файл ждать завершение определенного процесса и выполнение следующей

Ответить
Настройки темы
CMD/BAT - Как заставить bat-файл ждать завершение определенного процесса и выполнение следующей

Аватара для rafka

Пользователь


Сообщения: 85
Благодарности: 2

Профиль | Отправить PM | Цитировать


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

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

Отправлено: 11:43, 07-09-2023

 


Moderator


Сообщения: 53395
Благодарности: 15486

Профиль | Отправить PM | Цитировать


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

Отправлено: 12:07, 07-09-2023 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для rafka

Пользователь


Сообщения: 85
Благодарности: 2

Профиль | Отправить PM | Цитировать


Цитата Petya V4sechkin:
команда start /wait. »
Это не подходит

Отправлено: 12:51, 07-09-2023 | #3



Moderator


Сообщения: 53395
Благодарности: 15486

Профиль | Отправить PM | Цитировать


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

Отправлено: 13:06, 07-09-2023 | #4


Аватара для rafka

Пользователь


Сообщения: 85
Благодарности: 2

Профиль | Отправить PM | Цитировать


Цитата 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

Последний раз редактировалось rafka, 07-09-2023 в 13:38.


Отправлено: 13:18, 07-09-2023 | #5


Старожил


Сообщения: 250
Благодарности: 51

Профиль | Отправить PM | Цитировать


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

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

Отправлено: 17:18, 07-09-2023 | #6


Аватара для rafka

Пользователь


Сообщения: 85
Благодарности: 2

Профиль | Отправить PM | Цитировать


Цитата Serguei Kouzmine:
пора добавить tasklist.exe и цикл и все будет каа задумано »
Вот именно что куда добавить taskkill /im Setup.exe /f > nul я не знаю.

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

Отправлено: 17:22, 07-09-2023 | #7


Старожил


Сообщения: 250
Благодарности: 51

Профиль | Отправить PM | Цитировать


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

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

Отправлено: 17:41, 07-09-2023 | #8


Аватара для rafka

Пользователь


Сообщения: 85
Благодарности: 2

Профиль | Отправить PM | Цитировать


Цитата Serguei Kouzmine:
вам нужна помощь ? »
Да , если вам не трудно!

Отправлено: 17:46, 07-09-2023 | #9


Старожил


Сообщения: 250
Благодарности: 51

Профиль | Отправить PM | Цитировать


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

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

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

Последний раз редактировалось Serguei Kouzmine, 07-09-2023 в 17:56.

Это сообщение посчитали полезным следующие участники:

Отправлено: 17:46, 07-09-2023 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Как заставить bat-файл ждать завершение определенного процесса и выполнение следующей

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
10 / 2016 - [решено] Выполнение команд Dism через bat файл quelilyn3 Автоматическая установка Windows 11 / 10 / 8 / 7 / Vista 20 25-01-2020 20:45
CMD/BAT - [решено] Выполнение следующей команды, после завершения определенного процесса Weterok Скриптовые языки администрирования Windows 23 18-11-2015 13:58
CMD/BAT - Завершение одного процесса и запуск другого с помощью bat-файла irbis85 Скриптовые языки администрирования Windows 7 26-05-2015 19:19
CMD/BAT - Как ждать завершение 2-ого батника и только после этого закрыть сам первый? djager Скриптовые языки администрирования Windows 2 06-03-2013 02:19
Как прописать в самбе выполнение определенного скрипта kazarkin Общий по Linux 14 20-07-2006 09:09




 
Переход