IT

배치 확장 내에서 배치 확장을 어떻게 실행 가능합니까?

lottoking 2020. 9. 15. 08:00
반응형

배치 확장 내에서 배치 확장을 어떻게 실행 가능합니까?


배치 확장 내에서 다른 배치 확장을 어떻게 호출합니까?

if성명 에서 실행하고 싶습니다 .


사용 CALL에서와 같이

CALL nameOfOtherFile.bat

이렇게하면 현재 배치 파일의 실행이 차단 (일시 중지)되고 CALLed 파일이 완료 될 때까지 대기합니다 .

차단하지 않고 START대신 사용하십시오.

cmd 프롬프트에서 CALL /?또는 START /?사용하여 핵심 세부 정보를 가져옵니다.


명령 줄에서 실행하는 것처럼 이름으로 배치 펼쳐서 호출 할 수 있습니다.

다음과 같은 따라서 파일 bar.bat이 있다고 가정하고 파일 echo This is bar.bat!에서 호출하고 싶다면 foo.bat다음과 foo.bat같이 작성할 수 있습니다 .

if "%1"=="blah" bar

foo blah줄에서 명령 실행 하면 다음이-display됩니다.

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 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.


허, 이유는 모르겠지만 전화가 안돼서
call script.bat원래 콘솔로 돌아 가지 않았어요.
cmd /k script.bat원래 콘솔로 돌아 왔습니다.

참고 URL : https://stackoverflow.com/questions/4798879/how-do-i-run-a-batch-script-from-within-a-batch-script

반응형