![cmd - 다른 모든 동시 배치 파일이 완료된 후 배치 파일을 실행합니다.](https://rvso.com/image/770100/cmd%20-%20%EB%8B%A4%EB%A5%B8%20%EB%AA%A8%EB%93%A0%20%EB%8F%99%EC%8B%9C%20%EB%B0%B0%EC%B9%98%20%ED%8C%8C%EC%9D%BC%EC%9D%B4%20%EC%99%84%EB%A3%8C%EB%90%9C%20%ED%9B%84%20%EB%B0%B0%EC%B9%98%20%ED%8C%8C%EC%9D%BC%EC%9D%84%20%EC%8B%A4%ED%96%89%ED%95%A9%EB%8B%88%EB%8B%A4..png)
다른 배치 파일을 호출하는 간단한 배치 파일이 있는데 다음과 같습니다.
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
검사 속도를 늦춥니다.