U E D R , A S I H C RSS

창섭/배치파�


�스�는 명령어를 �괄�으로 처리하기위한 배치파���는 것� 있습니다.
대부분� 사람들� 배치파�� �스환경� 쉽게 만든다는 사실� 과소�가하는�, 컴퓨터를 좀� 쉽게 사용하고 싶다면 배치파�� 꼭 짚고 넘어가는것� 좋습니다.

▶ 배치파��란 ?

컴퓨터� �작 �태를 살펴 보면 항� 사용�와� �호작용� �하여 작업��루어진다는것� 알 수 있습니다. �스�는 운�체제� 사용�가 명령� 입력하면 그 명령� 대해 �스가 분�하여 사용�가 �하는 실행 결과를 제공합니다.
따�서 사용�는 항� �스 프롬프트 ��서 ��� 키보드를 �용한 타�핑으로 명령� 내려야 하고, 하나� 명령� 내려지면 완료� 때까지 다� 명령� 내릴수가 없습니다. 작업 과정� 얼마�지 않는다면 � �관� 없으나 그 과정� 매우 길고 복잡하다면 사용�는 지루함� ��게 �니다. �한 비� 짧� 작업과정��� 컴퓨터를 켤때마다 매번 똑같� 과정� ��� 지시하는 것� 귀찮� 것입니다.
�러한 경우 배치 파�� 가장 확실한 해결책입니다.

배치파�� 기능� 순차��고 반복� ��한 작업 과정� 몇개� 혹� 수십, 수백 개� 연관� 명령어를 하나� 파�로 집약하여 그 하나� 파�(배치파�)만 실행함으로� �하는 작업 과정� 수행하는것입니다.배치파�� 붙는 확장�는 .bat(batch � 약어) 입니다.�스�서 실행� 가능하기 때문� .com, .exe 확장�가 붙는 외부 명령어와 함께 실행 가능한 파�로 분류�니다.차�가 있다면 .com, .exe 명령어는 컴퓨터만 해� 가능한 기계어 코드로 구성�어 있는반면, 배치 파�� 사람� 알아볼수 있는 �반 �스트로 �루어져있다는 것입니다.

그래서 사용ìž�들ì�€ 문서작성ì—� ì�´ìš©í•˜ëŠ” 워드프로세서나 í…�스트ì—�디터 등ì�„ ì�´ìš©í•´ 배치 파ì�¼ì�„ 작성할 수 있습니다. 그러나 워드프로세서는 ë�©ì¹˜ê°€ í�¬ê³  ì›�래 목ì �ì�´ 편집과 ìœë ¥ì�„ 위해 만들어진 것ì�´ë¯€ë¡œ 단순한 배치 파ì�¼ì�„ 작성하는 ë�°ëŠ” 권하고 ì‹ì§€ 않습니다.

저장할때� 워드프로세서 고유� �맷(예" .hwp 확장�를 가지는 아래아한글 ��터 파�)으로 저장하면 ��� �지 않으므로 아스키 파�로 저장해야 합니다.가장 편리한 방법� �반 문서 �디터( �스� Edit, Q�디터,U�디터 등)를 �용하거나 �스� 'Copy Con' 명령으로 배치 파�� 만드는 것입니다.다�과 같� 'Copy con 파�명' 형�으로 입력하고 엔터를 누르면 �스 프롬프트 �태�서 편집할 수 있는 �태가 �니다.

C:\Bats> copy con Timedate.bat
cls
time
date
^Z

1 File(s) copied


여기서 ì“°ê³  ì‹ì�€ 대로 ì �기만 하면 ë�©ë‹ˆë‹¤.ì œì�¼ 마지막행ì�˜ ^Z 는 파ì�¼ì�˜ ì œì�¼ 마지막 부분ì�´ë�¼ëŠ” 것ì�„ ë�„스ì—�게 알려주는 코드로 < Ctrl + Z > 키 ë˜�는 F6 키를 누르면 ë�©ë‹ˆë‹¤. 그리고 엔터키를 한번ë�” 누르면 '1 File(s) copied' ë�¼ëŠ” 메세지가 ìœë ¥ë�˜ëŠ”ë�°, ì�´ëŠ” 방금 ' copy con 파ì�¼ëª… ' 으로 작성ë�œ 문서파ì�¼ì�´ 성공ì �으로 만들어졌다는 뜻입니다.위ì�˜ 문서파ì�¼ì�€ 확장ìž�ê°€ .BAT 로 붙었기 때문ì—� 실행가능한 외부 명령어가 ë�˜ëŠ”ë�°, 배치파ì�¼ì�€ 명령ì�´ 기ë¡�ë�˜ì–´ 있는 순서대로 실행ë�˜ê¸° 때문ì—� timedate.bat 를 실행시키면 먼저 화면ì�„ 지우고 난뒤 시스템ì�˜ 시간과 날짜를 설정합니다.간단한 배치파ì�¼ì�€ 'copy con 파ì�¼ëª…' 으로 작성하는 것ì�´ 다른 프로그램ì�˜ ë�„움없ì�´ 쉽고 빠르게 처리할 수 있습니다. 하지만 배치파ì�¼ì�´ 조금 길거나 작성중ì—� 수시로 편집할 ì�¼ì�´ ìƒ�기는 경우ì—�는 불가능합니다. 'copy con 파ì�¼ëª…' 으로 파ì�¼ì�„ 작성하면 행으로 다시ë�Œì•„ê°ˆ 수 ì—†ì�„ ë¿� 아니ë�¼ 수정ì�´ 불가능하기 때문입니다. 그러므로 배치파ì�¼ì�„ 만들 필요가 있ì�„때는 문서 ì—�디터를 ì�´ìš©í•˜ëŠ” 것ì�´ 좋습니다.

▶ 배치파� 작성 명령어 9�방

배치 파�� 파� 안� 기��어 있는 명령� 순서대로 실행�니다.가장 대표�� 것� 부팅� �용�며, 컴퓨터� 루트 디렉토리� 위치하고 있는 Autoexec.bat 파�입니다. 그런� 만약 배치 파�� 실행� 순서를 순차�� 아닌멀티부팅용 Autoexec.bat 처럼 사용� 마�대로 정하고 싶다면 배치파�� 제공�는배치명령어� 용�를 알고 있어야 합니다.


1. CALL


현재 실행중ì�¸ 배치 파ì�¼ì�„ 종료하지 않고 필요한 다른 배치파ì�¼ì�„ 호ìœí•˜ì—¬ 실행한 다ì�Œ ì›�래ì�˜ 배치파ì�¼ë¡œ 다시 ë�Œì•„오려고 í•  때 사용ë�©ë‹ˆë‹¤.

◇ 사용법 : Call drive:\경로\<배치파�명>.BAT

◇ 예 : Call c:\bats\sample.bat

어떤 배치 파�� 실행하는 �중� 경로 C:\bats � 있는 sample.bat 파�� 실행한 다� 다시 �래� 배치파�로 �아옵니다.


2. CHOICE

배치 프로그램 ë‚´ì—�서 사용ìž�ì�˜ ì„ íƒ�ì�„ 묻기 위해 사용ë�©ë‹ˆë‹¤. 배치 파ì�¼ 제작ìž�ê°€ 설정한 물ì�Œì�„ ìœë ¥í•˜ë©´ì„œ 지정ë�œ 키 ìž…ë ¥ì�„ 기다립니다. ì�´ 명령ì�€ 배치파ì�¼ ë‚´ì—�서만 사용 가능합니다.

◇ 사용법 :choice [/C:문�열]/N/S[/T:기본키,대기시간]메세지

◇ 옵션

- /C:문ìž�ì—´ : 사용ìž�ê°€ ì„ íƒ�í•  수 있는 키목ë¡�ì�„ [] 괄호 ë‚´ì—� ', ' 로 구분하여 ìœë ¥í•˜ê³  /C 스위치를 사용하지 않으면 기본ì �으로 YNì�´ 사용ë�©ë‹ˆë‹¤.

- /N : 프롬프트를 ìœë ¥í•˜ì§€ 않ë�„ë¡� 합니다.

- /S : 사용�� 입력�서 소문�, 대문�를 구분하�� 합니다.

- /T:기본키, 대기시간 : 기본키를 지정한 후 대기시간 �안 사용�� 키 입력� 없으면 ���으로 기본키가 입력� 것으로 간주하고 진행�니다. 지정 가능한 대기시간� 초단위�며 0�서 99 사�� 값입니다.

- 메세지 : 화면ì—� ìœë ¥ë�  메세지를 지정합니다.

◇ 예 : choice /c:abCD /s /t : C, 5 다�중�서 하나를 선�하십시오 a, b, C, D
◇ 설명 : 입력 가능한 키를 a,b,C,D로 한정하며 사용�로부터 입력�는 �문�� 대,소문�를 구분하는�, 만약 5초 내� 사용�로부터 키 입력� 없다면 C 가 입력� 것으로 간주합니다. 그리고 화면�는
'다�중�서 하나를 선�하십시오 a, b, C, Da,b,C,D? '
ë�¼ëŠ” 메세지가 ìœë ¥ë�©ë‹ˆë‹¤.


3. ECHO

배치파� 실행중� 명령어를 화면� 표시할 것�지� 여부를 설정하며, 그 �태를 표시합니다. 한편 ECHO 명령 뒤� 오는 메세지는 화면� 나타납니다.

◇ 사용법 : echo on/off 문�열

◇ 옵션
- on : 배치 파� 실행중� 그 배치 파� 내� 명령어를 화면� 표시합니다.
- off : 배치 파ì�¼ 실행중ì—� 명령어를 화면ì—� ìœë ¥í•˜ì§€ 않ë�„ë¡� 합니다.
- 문ìž�ì—´ : 화면ì—� ìœë ¥í•˜ê³  ì‹ì�€ 메세지를 ì �ì–´ì¤�니다.
- 없� : 현재 ECHO 설정 �태를 표시합니다.

◇ 예 :

echo off
☞ 현재 실행중� 배치 파� 내� 명령어를 화면� 나타나지 않�� 함.
echo
echo 안녕하세요?~
☞ 현재 echo 설정ìƒ�태를 표시하며 안녕하세요?~ ë�¼ëŠ” 문구를 화면ì—� ìœë ¥í•©ë‹ˆë‹¤.


4. FOR

지정� 집합 중� ��� 요소� 대하여 명령으로 설정한 처리를 반복 실행합니다.

◇ 사용법

For %%<변수> IN (<ì§‘í•©>) DO <명령> <<˜µì…>> ☞ 배치파ì�¼ìš©.
For %<변수> IN (<집합>) DO <명령> <옵션>] ☞ 순차처리용.

◇ 옵션

- %%<변수>, &<변수> : 변수로 사용�는 것� 임�� �문�로 1�만 허용�니다. 주�할 �� 배치파��서 사용할 경우는 반드시 %%처럼 �개를 연달아 사용해야 하며, �반 �스 프롬프트�서 사용할 때는 % 하나만 사용합니다.

- <ì§‘í•©> : %%<변수>ì—� 대입하고 ì‹ì�€ ê°’ì�„, ë˜�는 스페ì�´ìŠ¤ë¡œ 구분하여 대입하고 ì‹ì�€ 순서대로 나열합니다.

- <명령> : %%<변수>ì—� 대입ë�˜ì–´ 있는 ê°’ì—�대해 반복ì �으로 실행하고 ì‹ì�€ 명령ì�„ 지정합니다.

- <옵션> : 지정한 명령� 옵션�나 FOR 명령�서 지정한 옵션� 설정합니다.

◇ 예

for %%f in (bak tmp $$$) do del *.%%f /p ☞ 배치파�� 경우
for %d in (read,wh,file) do hlist %d*.* ☞ �스 프롬프트�서 실행시

◇ 설명 : 첫 번째는 bak, tmp, $$$ 를 순서대로 %%f 환경 변수� 대입하여 차례대로
DEL *.bak /p, DEL *.tmp /p, DEL *.$$$ .p 를 실행한 것과 ��한 결과를 얻게�.

�번째는 READ,WH,FILE 를 순서대로 %d 환경변수� 대입하여 차례대로
HLIST READ*.*, HLIS TWH *.* , HLIST FILE *.* 를 실행한 것과 ��한 결과를 얻게 �니다.


5. GOTO

배치 처리� �름� <레�블>�서 정��어 있는 위치로 옮�니다.

◇ 사용법 : Goto <레�블>

◇ 예 :
goto loop
:loop
�종 처리할 내용

◇ 설명 : 레�블 loop 로 배치 처리� 제어권� ��시켜 loop 항목� 지정� �종 처리할 내용� 실행시킵니다.

◇ 참고 : 배치 파�� 레�블 표시는 레�블명 앞� 콜론(:) � 붙여주며 줄�
바꿔 맨 앞� 지정해 주어야 합니다.


6. IF

지정한 조건� �단 결과� 따�서 배치 처리를 진행합니다.

◇ 사용법 : If NOT <조건> <명령>

◇ 옵션

- NOT : 지정한 조건� 반대 조건� 때만 실행합니다.

- ì¡°ê±´

- ERRORLEVEL <수치> : 바로 전� 실행한 명령(프로그램)� 종료 코드가 <수치> ��� 때�는 참� �고 <명령> � 실행�.

- <문�열1> == <문�열2> : <문�열1> 과 <문�열2> 가 같� 때�만 참��고 <명령>� 실행�니다. 주�할 �� 문�열� 대,소문�가 구별�며, 문�열중� 구분기호(콤마,스페�스,세미콜론,등호,탭)가 �함�어 있으면 않�니다.

- EXIST <파�명> : <파�명>으로 지정한 파�(경로�함)� 존재할 때�만 참� �고 <명령>� 실행�니다. <파�명>�는 와�드카드 문�� 사용� 가능합니다.

◇ 예 :
if errorlevel 2 goto quit
if not %1 ==%2 goto process
if exist d:\work\temp.$$$ del d:\work\temp.$$$

◇ 설명 :
�전� 실행한 명령� 종료 코드가 2 ��� 경우 레�블 QUIT로 ��합니다.

환경변수 %1과 환경변수 %2� 대입�어 있는 문�열� 같지 않� 경우�만 레�블 PROCESS 로 ��합니다.

경로 D:\Work � temp.$$$ �는 파�� 존재하면 그 파�� 삭제합니다.


7. PAUSE

배치 파� 실행� �시 정지합니다.

◇ 사용법 : Pause 문�열

◇ 옵션

- 문ìž�ì—´ : 문ìž�ì—´ì�„ ìƒ�략하면 'press any key to continue...'ë�¼ëŠ” 메세지가 화면ì—� ìœë ¥ë�©ë‹ˆë‹¤. 만약 PAUSE 명령 ë’¤ì—� ì–´ë–¤ 메세지를 지정하여 ê·¸ 메시지를 ìœë ¥í•˜ê³  싶다면 'Echo On' 명령ì�„ ìš°ì„  내려야 합니다.

◇ 예 :
echo on
pause 준비가 �었으면 아무키나 누르세요...

â—‡ 설명 : 배치 처리 중 pause명령ì�„ 만났ì�„때 ìž„ì�˜ì�˜ 다른 메시지를 화면ì—� ìœë ¥í•˜ê³  싶다면 예 ì—�서와 ê°™ì�´ 반드시 echo on 명령ì�´ ì„ í–‰ë�˜ì–´ì•¼ 하며 예ì�˜ 경우ì—�는 ' 준비가 ë�˜ì—ˆìœ¼ë©´ 아무키나 누르세요...' ë�¼ëŠ” 메세지가 ìœë ¥ë�©ë‹ˆë‹¤.

â—‡ 참고 : 위 처럼 하면 화면ì—� Pause ë�¼ëŠ” 명령어까지 ê°™ì�´ ìœë ¥ë�˜ë¯€ë¡œ ì�´ëŸ°ê²½ìš°
echo on
echo 준비가 �었으면 아무키나 누르세요...
pause > Null

ì�´ëŸ°ì‹�으로 사용하면 ìœë ¥í•˜ê³ ìž� 하는 메세지만 화면ì—� ìœë ¥ë�©ë‹ˆë‹¤.


8. REM

배치 파ì�¼ ë‚´ì—� 주ì„�문ì�„ 부여하고 ì‹ì�„ 때 사용합니다.

◇ 사용법 : rem 문�열

◇ 옵션

- 문ìž�ì—´ : 주ì„�문으로 ì“°ê³  ì‹ì�€ 것ì�„ ì �ì–´ì¤�니다.

◇ 예 : REM � 배치파�� 샘플입니다.

배치파�내� �당한 위치� �절한 주�문� 붙여�면 배치 처리� �름� �목요연하게 볼 수 있습니다.


9. SHIFT

배치 파�� 주어진 파�미터(%1~%9)와 실행시� 지정�는 값과� 대�� 하나씩 뒤로 ��하여 표시합니다.

◇ 예
<TEST.BAT>
:loop
if "%1" == " " goto end
echo %0 %1 %2 %3 %4 %5 %6 %7 %8 %9
shift
goto loop
:end

위와 같� 배치 파�� 작성해�고 다�과 같� 배치파�� 실행해 보면 shift 명령� 어떤 역할� 하는지 금방 알 수 있습니다..
C:\bats> test.bat A B C D E F G H I J 0 1 2 3 4 5 ☜똑같� 입력하고 실행후 확�.

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:31:15
Processing time 0.0104 sec