тасккил закрывает окна и преждевременно завершает цикл - PullRequest
0 голосов
/ 02 июня 2018

Я создал пакетный файл (start_loop.bat) с циклом for, который запускает другой пакетный файл (run_program.bat) и убивает его через 45 минут.Вот мой код:

@echo off
FOR %%A IN (1,1,100) DO (
start run_program.bat
timeout 2700
Taskkill /IM program.exe /F
timeout 3
)
call start_loop.bat

Все работает нормально, но Taskkill не закрывает окно cmd после завершения работы программы.Это не имеет большого значения, но через некоторое время у меня просто открывается много окон, которые мне не нужны.Есть ли возможность перейти на taskkill, чтобы закрыть окно?

Кроме того, мне пришлось добавить

call start_loop.bat

в конце, потому что после пары циклов "start_loop.bat" преждевременно заканчивался,Это правильный способ сохранить это?Есть ли способ лучше?

Спасибо

Редактировать после некоторых комментариев:

1 - цикл должен работать вечно

2 - нормально "жестоко" закрыть программу, запущенную

3 - командный файл работает нормально.Программа убивается, как ожидается, и новый экземпляр запускается, как ожидалось.Просто окно cmd не закрывается

4- run_program.bat просто запускается program.exe с некоторыми параметрами, например:

program.exe option1 option2

1 Ответ

0 голосов
/ 04 июня 2018

Добавление exit в конце run_program.bat сделало свое дело.Теперь окно закрывается, когда программа убита.Вот код, который я в итоге использовал и прекрасно работает для моего приложения:

@echo off
:Loop
start run_program.bat
timeout 2700
Taskkill /IM program.exe /F
timeout 3
goto Loop

Спасибо всем за предложения

...