배치 스크립트 내에서 다른 배치 스크립트를 어떻게 호출합니까?
if
성명 에서 실행하고 싶습니다 .
답변:
명령 줄에서 실행하는 것처럼 이름으로 배치 스크립트를 호출 할 수 있습니다.
따라서 다음과 같은 파일 bar.bat
이 있다고 가정하고 file echo This is bar.bat!
에서 호출하고 싶다면 foo.bat
다음과 foo.bat
같이 작성할 수 있습니다 .
if "%1"=="blah" bar
foo blah
명령 줄에서 실행 하면 다음이 표시됩니다.
C:\>foo blah
C:\>if "blah" == "blah" bar
C:\>echo This is bar.bat!
This is bar.bat!
그러나주의하십시오 . 다른 배치 스크립트에서 배치 스크립트를 호출하면 원래 배치 스크립트의 실행이 중지됩니다. 보조 배치 스크립트를 실행 한 다음 이전 배치 스크립트로 돌아가려면 call
명령 을 사용해야합니다 . 예를 들면 :
if "%1"=="blah" call bar
echo That's all for foo.bat!
foo blah
그것을 실행 하면 다음을 볼 수 있습니다.
C:\>foo blah
C:\>if "blah" == "blah" call bar
C:\>echo This is bar.bat!
This is bar.bat!
C:\>echo That's all for foo.bat!
That's all for foo.bat!
CALL을 사용해야합니다.
CALL batch.bat
다른 창에서 배치 파일을 열려면 start
. 이렇게하면 기본적으로 두 개의 스크립트를 동시에 실행할 수 있습니다. 즉, 방금 호출 한 스크립트가 완료 될 때까지 기다릴 필요가 없습니다. 아래의 모든 예가 작동합니다.
start batch.bat
start call batch.bat
start cmd /c batch.bat
스크립트가 완료 될 때까지 기다리려면을 시도하십시오 start /w call batch.bat
. 그러나 batch.bat는 exit
.
dayStart.bat
start "startOfficialSoftwares" /min cmd /k call startOfficialSoftwares.bat
start "initCodingEnvironment" /min cmd /k call initCodingEnvironment.bat
start "updateProjectSource" /min cmd /k call updateProjectSource.bat
start "runCoffeeMachine" /min cmd /k call runCoffeeMachine.bat
release.bat
call updateDevelVersion.bat
call mergeDevelIntoMaster.bat
call publishProject.bat
허, 이유는 모르겠지만 전화가 안돼서
call script.bat
원래 콘솔로 돌아 가지 않았어요.
cmd /k script.bat
원래 콘솔로 돌아 왔습니다.
call
하면 오류가 발생하더라도 계속 실행됩니다. 호출 된 스크립트에서.