배치 스크립트의 오류 처리

MD Aminul Islam 2023년3월20일
배치 스크립트의 오류 처리

모든 스크립팅 및 프로그래밍 언어에는 오류 처리를 위한 try-catch가 포함된 Java와 같은 오류 처리기가 포함되어 있습니다. Batch 스크립트에서 이를 수행하는 직접적인 방법은 없지만 Batch 스크립트 이름 %ERRORLEVEL%의 기본 제공 변수를 사용하여 Batch 스크립트에서 오류 처리기를 만들 수 있습니다.

이 문서에서는 오류 및 실패를 처리하기 위해 Batch 스크립트를 만드는 방법을 보여줍니다. 또한 주제를 더 쉽게 만드는 몇 가지 예를 살펴보겠습니다.

배치 스크립트의 오류 처리

명령이 성공적으로 실행되면 항상 명령이 성공적으로 실행되었는지 또는 실행에 실패했는지를 나타내는 EXIT CODE를 반환합니다. 따라서 Batch 파일에서 오류 처리를 생성하려면 프로그램에서 EXIT CODE를 사용할 수 있습니다.

아래의 일반 형식에 따라 오류 처리기를 만들 수 있습니다.

@Echo off
SomeCommand && (
  ECHO Message for Success
) || (
  ECHO Message for Failure or Error
)

%ERRORLEVEL%라는 변수를 확인하여 이를 수행할 수도 있습니다. 변수에 0이 아닌 값이 포함되어 있으면 명령을 실행할 때 문제나 오류가 있을 수 있습니다. %ERRORLEVEL% 변수를 테스트하려면 아래 예제 코드를 따를 수 있습니다.

@ECHO off
Some Command Here !!!
IF %ERRORLEVEL% NEQ 0 (Echo Error found when running the command &Exit /b 1)

키워드 NEQ는 같지 않음을 의미합니다. 그리고 %ERRORLEVEL% 변수는 코드에 문제나 오류가 있는 경우에만 0이 아닌 값을 포함합니다.

오류가 포함된 예

아래에서 예시를 공유했습니다. 위치에서 Your_file.bat라는 배치 파일을 실행합니다.

의도적으로 해당 파일을 디렉터리에서 제거했습니다. 따라서 오류 명령입니다.

예제 코드는 다음과 같습니다.

@echo off
ECHO Running a Batch file
CD G:\BATCH\
CALL Your_file.bat
IF  errorlevel 1 GOTO ERROR
ECHO The file run successfully.
GOTO EOF

:ERROR
ECHO The file didn't run successfully.
CMD /k
EXIT /b 1

:EOF

이제 파일이 디렉터리에 없으므로 오류가 표시되고 위에서 공유한 코드를 실행하면 아래와 같은 출력이 표시됩니다.

출력:

Running a Batch file
The system cannot find the path specified.
'Your_file.bat' is not recognized as an internal or external command,
operable program or batch file.
The file didn't run successfully.

성공적으로 실행되는 오류 없는 코드 예제

위의 예에서 우리는 코드가 어떻게 작동하는지 이해하기 위해 의도적으로 코드에 실수를 했습니다. 아래와 같이 수정하면

@echo off
ECHO Running a Batch file
CALL "G:\BATCH\Yourfile.bat"
IF  errorlevel 1 GOTO ERROR
ECHO The file runs successfully.
GOTO EOF

:ERROR
ECHO The file didn't run successfully.
CMD /k
EXIT /b 1

:EOF

그러면 다음과 같은 출력이 표시됩니다.

Running a Batch file
This is from the first file
The file runs successfully.

여기에서 논의한 모든 명령은 Windows 명령 프롬프트 또는 CMD 환경에만 해당됩니다.

MD Aminul Islam avatar MD Aminul Islam avatar

Aminul Is an Expert Technical Writer and Full-Stack Developer. He has hands-on working experience on numerous Developer Platforms and SAAS startups. He is highly skilled in numerous Programming languages and Frameworks. He can write professional technical articles like Reviews, Programming, Documentation, SOP, User manual, Whitepaper, etc.

LinkedIn

관련 문장 - Batch Error