배치파일 이란?
배치파일(Batch File)은 Windows 운영체제에서 일련의 명령어를 자동으로 실행하기 위해 사용하는 스크립트 파일입니다.
주로 MS-DOS 명령어와 Windows 명령어로 작성되며 파일 확장자는 .bat 또는 .cmd 입니다.
배치 파일에서 사용하는 명령어
① echo : 텍스트를 화면에 출력하거나 명령어의 실행 여부를 제어함
ex) echo Hello, World!
② cd : 디렉토리를 변경합니다.
ex) cd C:\Program Files
③ dir : 현재 디렉토리의 파일 및 폴더 목록을 표시합니다.
ex) dir
④ copy : 파일을 복사합니다.
ex) copy source.txt destination.txt
⑤ del : 파일을 삭제합니다.
ex) del file.txt
⑥ set : 환경 변수를 설정하거나 표시합니다.
ex) set PATH=C:\NewPath
⑦ if : 조건문을 사용하여 특정 조건이 참 일때만 명령어 실행합니다.
ex) if exist file.txt echo File exists
⑧ for : 반복문을 사용하여 파일 목록이나 다른 데이터를 순회합니다.
ex) for %%f in (*.txt) do echo %%f
⑨ pause : 스크립트의 실행을 일시 중지하고, 사용자가 키를 누를 때까지 대기합니다.
ex) pause
⑩ goto : 스크립트의 실행을 특정 라벨로 이동시킵니다.
ex) goto : labelname
배치파일 예시
@echo off echo Hello, World! pause
해당 배치파일은 Hello, World!를 출력하고 사용자가 키를 누를 때까지 대기하는 기능 입니다.
배치파일 에러 처리 방법
① ERRORLEVEL 변수 사용
ERRORLEVEL은 이전 명령어의 실행 결과를 나타내는 값이며 ERRORLEVEL이 0이면 성공 0이 아니면 오류 발생한 것 입니다.
somecommand.exe if ERRORLEVEL 1 ( echo Command failed with error level %ERRORLEVEL%. ) else ( echo Command succeeded. )
② | | 연산자 사용
명령어 실패 시 특정 작업을 수행하도록 설정할 수 있습니다.
somecommand.exe || echo Command failed!
③ try-catch와 비슷한 구조
배치 파일에는 try-catch 구문이 없지만 goto와 label을 사용하여 에러 처리 흐름을 제어할 수 있습니다.
@echo off somecommand.exe if ERRORLEVEL 1 goto error echo Command succeeded. goto end :error echo An error occurred. :end
해당 코드에는 somecommand.exe가 실행하면 error 라벨로 이동하여 에러 메세지를 출력하고
성공하면 end 라벨로 이동합니다.
배치파일과 파워쉘 스크립트의 차이점
① 언어구조
- 배치파일 : MS-DOS 명령어 기반의 단순한 명령어 집합 사용하며 주로 텍스트 파일내의 일련의 명령어들을 순차적으로 실행
- 파워쉘 : .NET Framework를 기반으로 명령어뿐만 아니라 변수 객체 지향 프로그래밍, 모듈화 등을 지원함
② 기능성
- 배치파일 : 기본적 파일 조작과 시스템 명령어 실행에 적합하며 제한적인 제어 구조를 가지고있음
- 파워쉘 : 복잡한 작업 자동화, 시스템관리, 클라우드 서비스 관리, API 호출 등 매우 다양한 기능 수행할 수 있음
③ 확장자
- 배치파일 : .bat , .cmd
- 파워쉘 : .ps1
④ 호환성
- 배치파일 : 오래된 MS-DOS 기반의 시스템에서도 동작 가능
- 파워쉘 : Windows 7 이후의 Windows 운영체제에서 기본 제공되며 더 최신 기술과 연동 가능