我想运行一个批处理脚本:
我写了这个:
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 shell的意思。 (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-“随机数”,然后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%"
这真的让我感到肮脏。 这将创build一个随机标题的CMD窗口,然后在一个单独的窗口中启动“java”。 TASKKILL上的“/ T”将会终止“FOO”窗口的任何subprocess – 即“java”窗口。
我觉得恶心。 >微笑<