2012-06-14 4 views
0

В частности, я использую DGIndex в пакетном файле как часть последовательности для кодирования видео.Обеспечение закрытия приложения в пакетных файлах

Несмотря на принятие параметров CLI, DGIndex открывает окно для обработки. Затем это исчезает, когда оно закончено, но командная строка висит, как будто она все еще открыта. Этот процесс больше не работает.

Есть ли что-то встроенное, что я могу сделать, чтобы оно не зависало, или есть сторонняя прокси-утилита, которая будет отслеживать процесс, а затем закрывать себя?

+0

Не выполняет ли командный скрипт следующую команду после выполнения DGIndex? Можете ли вы проверить, если это произойдет? Кроме того, можете ли вы опубликовать соответствующую часть своего командного сценария для анализа? –

+0

@EitanT Нет, сценарий зависает, как будто ожидая обратного вызова, что приложение завершено. Линия: 'dgindex -BF = [vob.txt] -FO = 0 -IA = 2 -OM = 2 -TN = 0 -OF = [out] -HIDE -EXIT' – Dan

ответ

0

Вы могли бы использовать что-то вроде этого:

@echo off 
echo Running program 
start dgindex -BF=[vob.txt] -FO=0 -IA=2 -OM=2 -TN=0 -OF=[out] -HIDE -EXIT 
ping 127.0.0.1 -n 10 
taskkill /im dgindex.exe /f 
exit >nul 

Этот пакетный файл в основном запускает программу DGIndex и затем делает паузу в течение 10 секунд, прежде чем пытаться закрыть программу. Просто замените 10 с задержкой по вашему выбору, что-то достаточно долгое, что если программа все еще работает, это означает, что она разбилась, после чего она будет закрыта после задержки.

Я уверен, что вы не можете сказать, зависла ли программа или нет (по крайней мере, не в пакетной игре). Это по крайней мере гарантирует, что он не работает, если вам нужно запустить его снова, если он сработает.

Надеюсь, это поможет!

0

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

Вы можете передать флаг /WAIT в start ему сказать, чтобы он подождал, пока процесс не завершился, прежде чем перейти к следующей строке пакетного файла.

start /WAIT dgindex -BF=[vob.txt] -FO=0 -IA=2 -OM=2 -TN=0 -OF=[out] -HIDE -EXIT 

Я знаю, что это старый, но вы когда-нибудь его выяснили?