2016-03-16 3 views
5

Добрый день, у меня есть .bat-файл, который запускает определенное приложение, а затем через 5 секунд он закроет/убьет его.Открытие/закрытие приложения через .bat-файл [Windows]

У меня сейчас, благодаря его успешному открытию приложения, при открытии приложения он не выполнит оставшиеся команды, если я не закрою приложение вручную.

Вот мой код:

cd "C:\Program Files (x86)\Aspera\Point-to-Point\bin\" 
asperascp.exe 
sleep 5 
taskkill /IM asperascp.exe /f 

Я также попробовать удалить команду sleep.

cd "C:\Program Files (x86)\Aspera\Point-to-Point\bin\" 
asperascp.exe 
taskkill /IM asperascp.exe /f 

Но он будет иметь тот же вывод, что он не выполнит оставшиеся команды при запуске asperascp.exe.

Любые советы?

Спасибо.

ответ

7

Вы можете использовать команду Start /b.

@echo off 
cd "C:\Program Files (x86)\Aspera\Point-to-Point\bin\" 
Start "" /b asperascp.exe 
timeout /T 5 /nobreak >nul 
taskkill /IM asperascp.exe /F 
+2

Он говорит, что он уже ждет завершения, прежде чем продолжить. Он хочет убить его через пять секунд после его начала; он должен использовать 'start/b'. – SomethingDark

+1

@SomethingDark Я отредактировал свой ответ, спасибо за внимание меня – Hackoo

+0

Спасибо, ты отличный! – Edmhar

3

TASKKILL /IM asperascp.exe /F
убивает все изображения с тем же именем изображения. Поэтому, если вы запускаете одну и ту же программу дважды, например, а вторая запускается до выхода первого, вторая будет также убита, когда первая запускает taskkill. Если вы сделаете tasklist, вы увидите несколько изображений с тем же именем изображения, но с разными PID. Вам нужно будет получить PID процесса, начатого вашим пакетным файлом (я не могу придумать, как это сделать с CMD.) Затем вы можете использовать: TASKKILL /PID 999 /F

Смежные вопросы