cmd - 다른 모든 동시 배치 파일이 완료된 후 배치 파일을 실행합니다.

cmd - 다른 모든 동시 배치 파일이 완료된 후 배치 파일을 실행합니다.

다른 배치 파일을 호출하는 간단한 배치 파일이 있는데 다음과 같습니다.

start /b run_part1.bat
start /b run_part2.bat
start /b run_part3.bat
start /b run_part4.bat

run_last.bat  // fires immediately, how to make this line wait until above finishes?

/b를 사용하면 처음 4개 파일이 동시에 실행됩니다. 모두 1시간 30분 이내에 완료됩니다.

네 개의 파일이 모두 완료된 후 정리를 수행하려면 또 다른 스크립트가 필요합니다. 그러나 run_last.bat는 처음 4개 파일을 기다리지 않고 처음 4개 파일과 동시에 호출됩니다.

그것을 달성할 수 있는 방법이 있나요?

감사합니다.

답변1

구식 명령 프롬프트 사용을 중지하고 Powershell을 사용하십시오. 당신은 사용할 수 있습니다ThreadJob 모듈에 설명된 대로SO에 대한 이 훌륭한 답변:

$commands = { ./run_part1.bat },
            { ./run_part2.bat },
            { ./run_part3.bat },
            { ./run_part4.bat }
$jobs = $commands | Foreach-Object { Start-ThreadJob $_ }
$jobs | Receive-Job -Wait -AutoRemoveJob
./run_last.bat 

답변2

CALL을 사용할 수 있습니다. 다른 목욕 파일에서 하나의 목욕 파일을 호출합니다.

자세한 내용은 확인하세요https://www.robvanderwoude.com/call.php

답변3

이를 처리하기 위해 배치 파일에 내장된 것이 없습니다.

4개의 배치 파일을 수정하여 완료되면 플래그 파일을 생성할 수 있습니다. 그런 다음 기본 배치 파일에서 루프 내 호출을 사용하여 플래그 파일을 찾는 루프를 실행하여 timeout /t 10검사 속도를 늦춥니다.

관련 정보