Командный файл: определить, когда вторая командная строка закрывается?

Я использую командный файл, чтобы запустить кучу автоматизации селена через Maven.

При запуске автоматизации открывается новая командная строка для запуска команды maven:

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

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

Иногда люди забывают нажать 1 и просто закрывают все, чтобы оно не копировалось, мне было интересно, есть ли способ определить, когда командная строка maven закрывается, а затем автоматически скопировать результаты?

2 ответа

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

Или если новый cmd окно не нужно, напрямую звоните cmd /c .... или если mvn это командный файл, используйте call mvn ....

В любом из случаев вызывающая сторона остановит свое выполнение до завершения вызываемого процесса.

Вы можете использовать файл, чтобы указать, что команда 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

Другие вопросы по тегам