배치 스크립트 내에서 다른 배치 스크립트를 어떻게 호출합니까?
if
성명 에서 실행하고 싶습니다 .
답변
사용 CALL
에서와 같이
CALL nameOfOtherFile.bat
그러면 현재 배치 파일의 실행이 차단 (일시 중지)되고 CALL
ed 파일이 완료 될 때까지 대기합니다 .
차단하지 않으려면 START
대신 사용하십시오.
cmd 프롬프트에서 CALL /?
또는 START /?
을 사용하여 핵심 세부 정보를 가져옵니다.
답변
명령 줄에서 실행하는 것처럼 이름으로 배치 스크립트를 호출 할 수 있습니다.
따라서 다음과 같은 파일 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
답변
당신이 사용할 수있는
call script.bat
아니면 그냥
script.bat
답변
예를 들면 다음과 같습니다.
a.bat가 있습니다.
@echo off
if exist b.bat goto RUNB
goto END
:RUNB
b.bat
:END
b.bat는 a.bat에서 조건부로 호출됩니다.
@echo off
echo "This is b.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