Windows 배치 파일에서 명령 실행이 완료될 때까지 대기

Siddharth Bishnoi 2023년3월20일
  1. /WAIT를 사용하여 명령 실행 완료 대기
  2. TIMEOUT 명령을 사용하여 실행 지연
  3. PAUSE 명령을 사용하여 실행 일시 중지
Windows 배치 파일에서 명령 실행이 완료될 때까지 대기

Batch 파일에는 일반적으로 완료하는 데 시간이 걸리는 여러 명령과 설치 프로세스가 있습니다. 그러나 Batch 파일이 실행될 때 명령 프로세스가 완료될 때까지 기다리지 않습니다. 모든 명령을 한 줄씩 실행합니다.

이러한 명령이 완료될 때까지 기다린 후 다음 명령을 실행하는 것이 중요합니다. 프로세스가 완료될 때까지 대기하려면 START 명령과 함께 /wait 매개변수를 사용합니다.

명령을 시작하는 대신 일정 시간 동안 Batch 파일에 지연을 삽입해야 하는 경우 TIMEOUTPAUSE와 같은 명령을 사용하여 짧은 시간 동안 다음 프로세스의 실행을 중지할 수 있습니다. 또는 키를 누를 때까지.

이 자습서는 다음 명령을 실행하기 전에 명령이나 프로그램이 완료될 때까지 기다리는 다양한 방법을 보여줍니다.

/WAIT를 사용하여 명령 실행 완료 대기

START 명령을 사용하여 Batch 파일에서 프로그램을 시작할 때 START 명령에 /wait를 추가하여 프로그램이 완료될 때까지 기다릴 수 있습니다. 명령이 여러 개 있더라도 /wait를 사용하여 각 프로세스가 완료되고 다음 프로세스로 이동할 수 있습니다.

또한 /B 매개변수는 새 창을 만들지 않고 동일한 프로세스를 유지하는 데 사용됩니다. /B 매개변수가 없는 START 명령은 새 창에서 프로그램 또는 명령을 엽니다.

명령이 실행을 마칠 때까지 기다리기

예를 들어 다음 명령을 실행하기 전에 명령 실행이 완료될 때까지 기다려야 합니다.

@echo off
echo starting first program.
START /B /WAIT cmd /c "C:\Users\Aastha Gas Harda\Desktop\testfile1.bat" > output.txt
echo The first program is executed successfully.
START /B systeminfo >> output.txt
echo All the programs are executed successfully
cmd /k

명령 완료 대기

출력:

출력 cmd

.exe 파일이 실행을 마칠 때까지 기다립니다.

또 다른 예는 .exe 파일을 실행하고 실행이 완전히 완료될 때까지 기다려야 하는 경우입니다.

@echo off
echo starting first program.
START /B /WAIT JRuler.exe
echo The first program is executed successfully.
START /B systeminfo >> output.txt
echo All the programs are executed successfully
cmd /k

exe 완료 대기

출력:

exe 파일이 완료되기를 기다리는 출력 cmd

.exe 파일을 닫는 즉시 두 번째 프로그램이 실행되기 시작합니다. 마지막 줄의 cmd /k는 실행 후 명령 프롬프트가 종료되는 것을 방지하는 데 사용됩니다.

프로그램이 여러 개인 경우 각 명령에 /WAIT를 사용하여 실행이 완료될 때까지 기다릴 수 있습니다. /WAIT 매개변수가 있는 START 명령에는 시간 초과가 없습니다. 즉, 프로세스가 완료되는 데 걸리는 시간은 중요하지 않습니다. 프로세스가 완료될 때까지 대기합니다.

@echo off
START /WAIT install1.exe
START /WAIT install2.exe

/WAITSTART 명령과 함께만 사용할 수 있습니다. TIMEOUTPAUSE 명령을 사용하여 다른 명령에 대한 시간 지연을 삽입할 수 있습니다.

TIMEOUT 명령을 사용하여 실행 지연

TIMEOUT 명령은 몇 초 또는 몇 분 동안 명령 실행을 지연시키는 데 사용됩니다. 배치 파일에서만 사용할 수 있습니다.

TIMEOUT 명령의 범위는 -1에서 100000 사이입니다. 지연이 -1로 설정된 경우 키를 누를 때까지 대기하는 일시 중지 명령으로 작동합니다.

위의 명령에서와 같이 TIMEOUT 명령을 /t 매개변수와 함께 삽입하여 /wait를 대체할 수 있습니다. TIMEOUT 명령의 구문은 다음과 같습니다.

TIMEOUT /t <time>

위의 예에서 첫 번째 프로그램 실행 후 30초의 시간 지연을 추가해 보겠습니다. 동일한 코드가 아래에 나와 있습니다.

@echo off
echo starting first program.
START /B JRuler.exe
TIMEOUT /t 30
echo The first program is executed successfully.
START /B systeminfo >> output.txt
echo All the programs are executed successfully
cmd /k

테스트 파일 시간 초과 명령

출력:

출력 시간 초과 명령

30초 후에 두 번째 프로그램이 실행되기 시작합니다. 또한 사용자가 시간 초과 전에 키를 누르면 두 번째 프로그램이 실행되기 시작합니다.

실행 후 시간 초과 명령 출력

사용자 키 입력을 방지하려면 TIMEOUT 명령과 함께 /nobreak 매개변수를 사용하십시오. 이것은 사용자가 누르는 키를 무시합니다.

하지만 Ctrl+C를 누르면 errorlevel1이 높아져 지연을 멈출 수 있습니다.

PAUSE 명령을 사용하여 실행 일시 중지

PAUSE 명령은 키를 누를 때까지 배치 파일의 실행을 일시 중지하는 데 사용됩니다. 사용자가 출력 텍스트를 읽거나 프로세스가 완료될 때까지 기다리려는 경우에 유용합니다.

그러나 시간 제한이 없으며 사용자가 키를 누를 때까지만 계속됩니다.

@echo off
echo starting first program.
START /B cmd /c "C:\Users\Aastha Gas Harda\Desktop\testfile1.bat" > output.txt
echo The first program is executed successfully.
PAUSE
START /B systeminfo >> output.txt
echo All the programs are executed successfully
cmd /k

테스트 파일 일시 중지 명령

출력:

출력 일시정지 명령

위에서 언급한 모든 방법이 잘 작동합니다. START 명령을 사용하는 경우 프로세스가 지정된 것보다 오래 걸릴 수 있으므로 지연 명령 대신 /wait를 사용하는 것이 좋습니다.