Командный файл: определить, когда вторая командная строка закрывается?
Я использую командный файл, чтобы запустить кучу автоматизации селена через 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