批处理文件:检测第二个命令提示符何时关闭

时间:2014-07-01 08:43:34

标签: windows maven batch-file command-line command-prompt

我正在使用批处理文件通过maven运行一堆selenium自动化。

当自动启动时,它会打开一个新的命令提示符来运行maven命令:

start cmd /c mvn site surefire-report:report -Dtest=uk.co.......

当maven命令提示符关闭时,我会询问正在运行它的人在主命令提示符下按1,这样它就可以将测试结果复制到共享位置。

有时人们忘记按1并且只是关闭所有内容而无法复制,我想知道是否有一种方法可以检测maven命令提示何时关闭然后自动复制结果?

2 个答案:

答案 0 :(得分:1)

start "" /wait cmd /c mvn site surefire-report:report -Dtest=uk.co.......

如果不需要新的cmd窗口,请直接致电cmd /c ....,或者如果mvn是批处理文件,请使用call mvn ....

在任何情况下,调用者都会停止执行,直到被调用的进程结束。

答案 1 :(得分:0)

您可以使用文件来指示maven命令处于活动状态:在运行maven命令之前创建文件,并在maven结束时删除它。在主程序中,输入一个等待周期,直到指示文件消失:

rem Create the indicator file:
echo X > mavenActive.txt

rem Start maven and delete the indicator file at end:
start cmd /c mvn site surefire-report:report -Dtest=uk.co....... ^& del mavenActive.txt

rem Wait for the indicator file disappear:
:wait
   rem Insert a delay so not use too much cpu:
   timeout /t 20 /nobreak
if exist mavenActive.txt goto wait

rem Copy maven results here:
copy ...

如果有多个同时进行的maven进程,您可以为每个指标文件使用不同的数字,然后使用if exist mavenActive*.txt goto wait

等待所有指标文件