Назад | Перейти на главную страницу

cmd.exe: как запустить фоновый процесс, запустить некоторые вещи, остановить фоновый процесс

Я хочу запустить пакетный скрипт, который:

Я написал это:

start java -jar "path\selenium-server.jar" 
ping -n 5 127.0.0.1 >NUL
"path\Gallio.Echo.exe" "path\MyAssembly.dll"
REM now, how do I stop the background process?

Вы говорите «DOS», но я полагаю, вы имеете в виду оболочку Windows CMD. (В конце концов, MS-DOS - это не многозадачная операционная система.)

Хорошо, хорошо ... Вот хак, который я только что придумал. Я чувствую себя грязным, даже предлагая это.

SET TASK=%RANDOM%-SELENIUM-SERVER-%RANDOM%
start "%TASK%" java -jar "path\selenium-server.jar"
ping -n 5 127.0.0.1 >NUL"
path\Gallio.Echo.exe" "path\MyAssembly.dll"
taskkill /FI "WINDOWTITLE eq %TASK%"

Предполагая, что команда "java" не очень сильно влияет на заголовок окна, эта команда "START" установит заголовок окна на "случайное число" -SELENIUM-SERVER- "random number", а затем TASKKILL убьет все окна с помощью это название.

Фу ... это заставляет меня чувствовать себя грязным.

Если "java" не соответствует заголовку окна, вы также можете сделать:

SET TASK=%RANDOM%-SELENIUM-SERVER-%RANDOM%
start "%TASK%" cmd /k start java -jar "path\selenium-server.jar"
ping -n 5 127.0.0.1 >NUL"
path\Gallio.Echo.exe" "path\MyAssembly.dll"
taskkill /T /FI "WINDOWTITLE eq %TASK%"

Который действительно заставляет меня чувствовать себя грязным. Это создает окно CMD со случайным заголовком, которое, в свою очередь, запускает "java" в отдельном окне. «/ T» в TASKKILL уничтожит все дочерние процессы окна «FOO», а именно окна «java».

Я болен. > улыбка <