Batch

Batch는 MS-DOS와 Microsoft Windows의 명령 처리기가 실행하는 배치 파일 스크립트 언어를 가리킨다. 일반적으로 .bat 또는 .cmd 파일에 명령어를 한 줄씩 기록하고 COMMAND.COM이나 cmd.exe가 이를 순서대로 해석해 실행한다. 파일 복사·이동, 프로그...

분류Windows·MS-DOS 명령 스크립트 언어
다른 명칭배치 파일, batch script
개발·계보DOS 명령 처리기 및 Windows CMD
주요 구현COMMAND.COM, cmd.exe
기본 파일 확장자.bat, .cmd
패러다임명령형 프로그래밍, 명령 스크립팅
실행 모델명령 처리기에서 순차 해석
기본 제어IF, FOR, GOTO, CALL
데이터 모델환경 변수, 문자열, 종료 코드
입출력표준 입출력 리다이렉션과 파이프
대상 운영체제MS-DOS, Microsoft Windows
주요 용도시스템 자동화, 설치·빌드 스크립트
문서Microsoft Windows Commands

Batch는 MS-DOS와 Microsoft Windows의 명령 처리기가 실행하는 배치 파일 스크립트 언어를 가리킨다. 일반적으로 .bat 또는 .cmd 파일에 명령어를 한 줄씩 기록하고 COMMAND.COM이나 cmd.exe가 이를 순서대로 해석해 실행한다. 파일 복사·이동, 프로그램 실행, 환경 설정, 조건에 따른 분기와 여러 명령의 반복을 자동화하는 데 사용되며, 별도의 범용 컴파일러보다 운영체제의 명령 처리 환경에 밀접하게 연결되어 있다.[1]

Batch 문법은 특정 명령 실행을 기본 단위로 삼는다. IF는 조건에 따라 명령을 실행하고 FOR는 파일 또는 값 목록을 순회하며, GOTO는 레이블로 이동하고 CALL은 다른 배치 파일이나 서브루틴을 호출하는 데 사용한다. %VAR% 형태의 환경 변수 확장과 %1 같은 위치 인수는 실행 환경의 값을 스크립트에 전달한다. 파일과 프로세스를 다루는 명령어는 기본 제공 기능과 외부 실행 파일을 함께 사용한다.[2]

Windows의 cmd.exe는 MS-DOS 시절의 배치 언어를 계승하면서 명령 확장, 블록 문법과 지연된 환경 변수 확장 등 추가 기능을 제공했다. 명령은 일반적으로 행 또는 괄호로 묶은 블록 단위로 처리되며, 변수 확장의 시점이 실행 결과에 영향을 줄 수 있다. 종료 코드는 ERRORLEVEL을 비롯한 조건 검사에서 활용되며, 프로그램 실행과 제어 흐름을 연결하는 기본적인 방법을 제공한다.

Batch는 UNIX 계열의 Bash 스크립트와 비슷한 자동화 목적을 갖지만 명령어 문법, 변수 확장, 인용과 실행 모델은 서로 다르다. 또한 Windows PowerShell은 객체 파이프라인과 별도 언어·런타임을 가지므로 같은 배치 언어의 다른 표기라고 볼 수 없다. 운영체제 초기화, 오래된 소프트웨어 설치, 빌드 명령 호출 등 Windows 시스템과 밀접한 작업에서 배치 파일의 호환성은 역사적으로 중요한 역할을 해 왔다.

역사

MS-DOS의 배치 처리

COMMAND.COM

Windows NT와 cmd.exe

실행 구조

BAT와 CMD

명령 처리기

종료 상태

문법

환경 변수

명령 인수

IF와 FOR

GOTO·CALL

명령 조합

파이프

리다이렉션

외부 프로그램 실행

변수 확장

백분율 확장

지연된 확장

실행 환경

DOS

Windows

Bash·PowerShell과의 차이

시스템 자동화

관련 문서

  1. Microsoft Learn — Windows 명령 참조 ↩
  2. Microsoft Learn — IF 명령 ↩