윈도우 운영체제에서 제공하는 자동 명령프롬포트(CMD) 매크로 실행파일이다.
어떻게 보면 CMD 명령어가 적힌, '.bat' 확장자를 쓰는 텍스트 파일일 뿐이다.
사용법을 예시를 들자면, 어느 배치파일(*.bat)에 copy srcpath\sample.txt destpath\sample.txt 이라는 문자열을 적어서 저장한 뒤
해당 배치파일을 실행하면, 명령 프롬포트가 실행되고, 해당 명령(복사)이 바로 실행된다.
위 예시는 단순한 명령이지만
이를 이용해 내가 원하는 프로그램에 인자값을 전달해 수천, 수만번 실행시키는 것도 가능하다.
심지어는 그렇게 실행한 프로그램에서도 배치파일을 실행하도록 해서, 모듈처럼 업무를 자동화 하는 것도 가능해진다.
Batch파일을 가장 흔하게 접하는 부분은 프로그램을 반복 실행할 때이다.
기본적으로 명령프롬포트의 셀명령어도 인식을 한다.
주석 관련
:: 주석이다. 해당줄의 명령은 주석으로 인식한다.
프롬포트 출력 관련
@ 프롬포트의 명령어입력 표시를 지운다.
echo cmd현재 명령어(cmd) 문자열 표시
echo off명령어 문자열 결과지우기
echo on 명령어 문자열 출력
경로 관련
%~d0 현재드라이브명 C:
%0 파일전체경로 C:\Test\Path\test.bat
%~p0 경로 \Test\Path\
%~n0 파일명 test
%~x0 확장자명 .bat
%cd% 현재디렉토리 C:\Test\Path
%~dp0 드라이브경로 C:\Test\Path\
pushd 명령프롬포트 위치를 현재 배치파일의 드라이브경로로 변경(Window7환경문제)
경로 사용 예시
echo pushd "%~dp0" ::드라이브경로로 현재 경로를 변경한다.
프롬포트 프로그래밍(= 전후의 공백도 인식한다.)
set var=string var라는 문자열 변수 생성한다.
set /p var=string var에 입력값을 받아 문자열 변수 생성한다.
set /a var=string var의 값을 정수형으로 변환하여 변수 생성한다.
%var% var% 변수의 단일참조
%%var %var 변수의 반복문참조
프로그래밍 사용 예시
set c= 10
if %c% == 10 (echo "c is 10") else (echo "c is not 10.")
for %%name in (*) do(
echo %%name
)
프로그램 실행 관련
%~dp0program.exe argu0 argu1 argu2 ... 띄어쓰기로 인자를 구분한다.(여기서 인자란 프로그램 main함수의 매개변수
프로그램 실행 사용 예시
파일 입력경로, 출력경로 변수 설정
set source=%cd%\xxx
set output=%cd%\output
Program gen txt -option a -source %source% -output %output%
결과: cmdProgram.exe gen txt --path ../../../../Data --output ../../../../Output/Debug
start explorer %output% output경로 탐색기열기
more %file 파일 데이터 표시
type %file 파일 데이터 표시
PAUSE 입력대기 명령
cd md del xcopy goto call
프롬포트 외형 관련(실행과는 관련이 없다.)
title titlename 프롬포트의 이름을 변경한다.
mode con width height 프롬포트의 크기를 변경한다.
mode con font=font:size 프롬포트의 글자폰트 사이즈를 변경한다.(Arial:10)
color backgound text 프롬포트의 색상을 변경한다.(색상코드는 아래와 같다.)
:: 0 = 검정색 8 = 회색
:: 1 = 파랑색 9 = 연한 파랑색
:: 2 = 초록색 A = 연한 초록색
:: 3 = 옥색 B = 연한 옥색
:: 4 = 빨강색 C = 연한 빨강색
:: 5 = 자주색 D = 연한 자주색
:: 6 = 노랑색 E = 연한 노랑색
:: 7 = 흰색 F = 밝은 흰색