관리 메뉴

ㄴrㅎnㅂrㄹrㄱi

[WindowsTip]Bat 파일 명령어 본문

ETC

[WindowsTip]Bat 파일 명령어

님투 2008. 12. 16. 15:58
반응형

파일 관리용 명령어

COPY | DEL | DIR | MOVE | RENAME | UNDELETE | UNFORMAT | VERIFY | XCOPY

컴퓨터의 효용 가치를 높이는 것 중의 하나로 데이터 관리의 유용성을 들 수 있다. 즉, 컴퓨터에서 데이터를 보관하고 필요한 경우에 언제든지 다시 열람할 수 있고, 보관되어 있는 데이터를 다른 작업에 사용할 수 있다.

이러한 유용성을 갖는 데이터는 곧 컴퓨터의 효용성을 증대시키는 것으로, 파일의 형태로 컴퓨터에서 보관된다. 파일의 형태로 보관되어 있는 데이터는 완벽한 안전성을 보장할 수 없다는 약점이 있다. 예를 들어, 플로피디스크에 파일을 보관하는 경우에 플로피디스크가 습기나 불 혹은 자기성 물질을 가진 것들에 의해 손상될 수 있다. 이러한 문제가 발생한 경우에 파일을 다른 기록 매체에 기록해 백업본을 보관하는 방법을 생각하게 되었다.

파일을 다른 기록 매체에 기록하기 위하여 MS-DOS에서는 많은 명령어를 제공하고 있다. 예를 들어, COPY, MOVE, XCOPY, MSBACKUP, RESTORE, REPLACE 등은 다른 기록 매체에 파일을 기록하기 위하여 제공하는 명령어들이다.

컴퓨터의 하드웨어의 발달에 따라 소프트웨어의 크기도 점차로 커지는 경향이 있다. 즉, 고성능의 컴퓨터를 잘 활용하기 위해서는 고성능의 소프트웨어가 필요하게 되었고, 이것은 필연적으로 고용량화로 이어졌다. 따라서, 컴퓨터에서 관리해야할 데이터의 양도 그만큼 증가했다. 데이터 양의 증가는 필연적으로 데이터를 분류하기 위한 방법을 생각하게 되었다. 데이터의 분류를 위하여 MS-DOS에서 사용하는 기법은 디렉토리를 사용하는 방법이다. 즉, 동일한 속성 혹은 동일한 프로그램에서 이용해야할 파일을 한 디렉토리로 분류함으로써 다른 파일과 혼동되지 않도록 한 것이다. 이러한 디렉토리를 관리하기 위한 명령어로 MS-DOS에서 제공하는 것은 디렉토리의 생성, 삭제, 현행 디렉토리의 변경에 관한 MD, RD, CD 명령어와 디렉토리 구조를 삭제하기 위한 DELTREE, 디렉토리의 구조를 디스플레이하기 위한 TREE 명령어 등을 제공한다.

따라서, 본 장에서는 파일 관리를 위한 명령어와 디렉토리 관리를 위한 명령어를 살펴보고, 파일 관리를 위한 명령어 중에서 특별히 MS-DOS에서 제공하고 있는 백업 프로그램에 관해서는 따로 분류하여 설명하고 있다.

MS-DOS에서 파일 관리를 위하여 제공하는 명령어는 파일의 복사, 이동, 비교, 대체, 백업, 이름 변경에 관한 명령어들이 있다. 이 중에서 윈도우 98 시대에 알아야 할 것은 다음과 같다.

COPY DEL(ERASE) DIR

MOVE RENAME(REN) UNDELETE

UNFORMAT VERIFY XCOPY

COPY

컴퓨터를 사용하다 보면 데이터 파일을 플로피디스크에서 하드디스크로 복사하거나 혹은 하드디스크 상에서 다른 디렉토리로 복사하는 경우가 있다. 이처럼 파일을 복사하기 위하여 사용하는 명령어로 COPY와 XCOPY 명령어가 있는데, 두 명령어는 상당한 차이를 보인다. 예를 들어, COPY는 COMMAND.COM에 의하여 자체적으로 처리되는 내부 명령어로 파일 단위로 복사를 실행하고, XCOPY는 실행 파일로 구성된 외부 명령어로 버퍼 단위로 복사를 실행한다. 따라서 다수의 파일을 복사하는데는 XCOPY 명령어가 비교적 빠르게 수행되고, 특히 서브 디렉토리까지 한꺼번에 복사하고자 하는 경우에는 반드시 XCOPY 명령어를 사용한다. 그러나, XCOPY 명령어는 2개 이상의 파일을 하나로 결합하기 위하여 사용할 수 없다는 약점을 지진다. 즉, COPY 명령어는 파일을 복사하는 이외의 기능으로 파일을 결합하는 기능을 가지고 있는 것이다.

MS-DOS 6.2에서는 파일을 목적지로 복사할 때 목적지에 동일한 이름의 파일이 있으면 원본 파일로 목적지 파일을 대체할 것인가를 확인하기 위하여 사용자에게 프롬프트하도록 지정하는 옵션이 추가되었다. 또한, 이 옵션을 환경 변수로 지정하여 항상 목적지 파일을 대체할 때 사용자에게 확인하도록 설정할 수 있다.

MS-DOS는 파일을 복사할 때 각각의 파일명을 디스플레이한다. 만약, 파일을 목적지로 복사하고 원본 파일을 삭제하려면 MOVE 명령어를 사용한다. MOVE 명령어에 대한 자세한 사항은 MOVE 명령어를 참조하기 바란다.

■ 사용법

COPY [/Y|/-Y] source destination [/V] [/N]

2개 이상의 파일을 결합하여 하나의 파일로 만들려면 다음과 같이 COPY 명령어를 사용한다.

COPY [/Y|/-Y] [/A|/B] source [/A|/B] [+....] destination [/A|/B] [/V]

■ 옵션 및 매개변수

/y 이 옵션은 파일을 목적지로 복사할 때 원본 파일로 목적지 파일을 대체하도록 하기 위하여 사용하는 것으로, COPY 명령어의 디폴트 값이다. MS-DOS 6.0 이하의 이전 버전에서는 무조건 목적지 파일을 대체하였는데 버전 6.2에서는 사용자가 목적지 파일의 대체를 확인할 수 있도록 한 것이다.

/-y 이 옵션은 파일을 목적지로 복사할 때 원본 파일과 동일한 이름을 가진 파일이 목적지에 있을 때, 이를 대체할 것인가를 사용자에게 확인하도록 하기 위하여 사용하는 옵션이다. 이 옵션을 지정하지 않으면 디폴트로 목적지 파일을 원본 파일로 대체한다. 만약, 항상 목적지 파일을 대체하기 전에 사용자에게 확인하도록 하려면 SET 명령어를 사용하여 COPYCMD 환경 변수를 설정할 수 있다. 보다 자세한 사항은 다음에 설명할 "참고 사항"을 참조하기 바란다.

Source 복사할 파일의 경로와 이름을 지정한다. Source는 원본 드라이브, 디렉토리, 파일명으로 구성되어 있다. 즉, [drive:][path] filename으로 구성되어 있다. 다수의 파일을 복사하기 위하여 일련의 파일군을 지정하려면 와일드 카드(* 혹은 ?)를 사용한다.

destination 파일을 복사할 경로 즉, 목적지를 지정한다. 만약 목적지를 지정하지 않으면 현행 디렉토리에 원본 파일과 같은 이름으로 복사한다. 다른 이름으로 복사하려면 파일명을 다른 이름으로 지정한다. 목적지도 와일드 카드를 사용할 수 있다.

/a 텍스트 파일을 의미한다. /a 옵션이 명령어 라인의 파일명보다 앞에 나오는 경우에는 /a 옵션 뒤에 나오는 모든 파일에 적용된다. 이 경우 중간에 /b 옵션을 만나는 경우, /b 옵션 다음에 오는 파일은 모두 이진 파일로 간주된다. 파일명 뒤에 /a 옵션이 오는 경우에는 옵션에 선행하는 파일과 다음에 /b 옵션이 오기 전까지의 모든 파일에 적용된다. 이 경우 /b 옵션은 선행하는 파일과 다음에 오는 파일에 적용된다.

텍스트 파일은 파일의 끝을 지정하기 위하여 EOF(End Of File) 문자(Ctrl+Z)를 사용할 수 있는데, 파일을 결합하는 경우에는 COPY 명령어는 파일을 디폴트로 텍스트 파일로 취급한다.

/b 이진 파일을 의미한다. /b 옵션도 위의 /a 옵션과 마찬가지로 파일명의 앞에 사용되는 경우에는 다음에 오는 모든 파일에 적용된다. 즉, 적용의 방법은 /a와 동일하다.

/b 옵션은 명령어 해석기인 COMMAND.COM이 디렉토리에서 파일 크기에 의해 지정된 바이트의 숫자를 읽도록 지정한다. /b 옵션은 COPY 명령어를 이용하여 파일을 결합시키지 않는 한 디폴트 값으로 사용된다.

/v 목적지로 파일을 복사한 후 정확하게 복사되었는지를 검사하도록 하기 위하여 이 옵션을 사용한다. 이 옵션을 사용하는 경우 정확하게 복사된다는 장점이 있는 대신 시간이 더 소요된다.

■ 참고 사항

☞ COPY 명령어의 환경 변수 지정하기

MS-DOS 6.2에서는 목적지에 원본 파일과 동일한 이름을 가진 파일이 있는 경우에 이를 대체할 것인가를 사용자에게 확인할 수 있는 옵션을 제공하는데, COPY 명령어는 디폴트로 목적지 파일을 원본 파일로 대체한다. 만약, 원본 파일로 목적지 파일을 대체하기 전에 사용자에게 대체 확인을 위한 메시지를 디스플레이하도록 하려면 SET 명령어를 사용하여 COPY 명령어의 환경 변수를 지정할 수 있다. 컴퓨터의 시동과 동시에 항상 확인할 필요가 있는 경우에는 AUTOEXEC.BAT 파일에 다음과 같이 COPY 명령어의 환경 변수를 지정할 수 있다.

set copycmd=/-y

위와 같이 COPY 명령어의 환경 변수를 지정한 경우에는 파일을 복사 혹은 이동하기 위하여 사용하는 모든 명령어 즉, COPY, MOVE, XCOPY 명령어 등에 모두 적용된다. 따라서, COPYCMD 환경 변수의 지정은 단순히 COPY 명령어에만 국한되는 것이 아니라 파일의 복사와 이동에 모두 적용된다는 것이다.

만약, COPYCMD 환경 변수를 목적지 파일을 대체할 때 사용자에게 확인하지 않도록 변경하려면 다음과 같이 SET 명령어를 사용한다.

set copycmd=

위의 예에서 /y 옵션을 사용하지 않는 것은 COPY, MOVE, XCOPY 명령어는 디폴트로 목적지 파일을 대체할 때 사용자에게 확인하지 않기 때문에 환경 변수를 삭제하기 위한 SET 명령어를 사용한 것이다.

☞ 주변 장치 지정하기

COPY 명령어는 원본이나 목적지를 파일명으로 하는 대신에 주변 장치로 입출력할 수 있다. 즉, 원본으로 키보드를 지정하거나 목적지로 프린터 포트를 지정함으로써 출력 방향을 변경하는 것이다. 원본이나 목적지를 주변장치로 지정하는 경우에는 장치명만을 지정하면 된다. 예를 들어, 키보드로부터의 입력을 LPT1에 연결된 프린터로 인쇄하려면 다음과 같이 COPY 명령어를 사용한다.

copy con lpt1

위와 같이 COPY 명령어를 사용하면 MS-DOS는 해당 입력을 받아들일 준비를 하고 입력 커서를 프롬프트한다. 사용자가 원하는 문자열을 모두 지정하였으면 키보드 상에서 <F6>을 누르거나 <Ctrl>+<Z>를 누름으로써 프린터로 데이터가 보내진다. 많은 문자열을 지정하는 경우에는 자동으로 스크롤되고, EOF가 입력되기 전까지의 데이터는 버퍼에 저장된다.

COPY 명령어에서 원본이나 목적지로 지정할 수 있는 주변 장치는 컴퓨터에 설치되어 있는 장치에 따라 달라지는데, 일반적으로 CON, PRN, LPT1∼LPT3, COM1∼COM4, AUX, 등이 있다. CON은 키보드를 의미하는 것으로 원본으로만 지정할 수 있고, 기타 다른 주변 장치는 연결된 장치에 따라 원본이나 목적지로 지정할 수 있다. 예를 들어, 프린터 포트에 연결하여 사용하는 하드디스크의 경우에는 원본과 목적지로 사용될 수 있지만 프린터 포트에 프린터가 연결되어 있는 경우에는 목적지로만 사용할 수 있을 것이다.

☞ 동일한 장치 내에서 복사할 때 /b 옵션의 사용 또는 생략

목적지가 주변 장치(병렬 포트나 직렬 포트)일 경우 /b 옵션은 MS-DOS가 데이터를 각 주변 장치에 이진 모드로 복사하도록 한다. 이진 모드에서는 모든 문자들(예를 들어 Ctrl+C, Ctrl+S, Ctrl+Z, CR 등과 같은 특별한 문자들을 포함하는 모든 문자들)이 데이터처럼 복사된다. 이에 반하여 /b 옵션을 생략한 경우에는 MS-DOS가 데이터를 주변 장치에 아스키 모드로 복사하게 한다. 아스키 모드에서는 위에서 열거한 특별 문자는 MS-DOS에서 복사하는 도중에 특별한 작용을 할 수 있다. 예를 들어, Ctrl+C는 프린트로 보내지고 있는 데이터의 송신을 중단하게 할 수 있고, Ctrl+Z는 모든 데이터를 전송한 것처럼 MS-DOS에 보고될 수 있다.

☞ 디폴트 목적지 파일

목적지 파일을 지정하지 않으면, MS-DOS는 원래의 파일과 같은 파일명, 날짜, 시간을 가진 복사본을 만들어 현행 드라이브 상의 현행 디렉토리에 복사한다. 만약, 원본 파일이 현행 디렉토리에 있는 경우에 목적지 파일을 복사할 디렉토리나 드라이브를 지정하지 않은 경우에는 COPY 명령어는 중단되고, MS-DOS는 다음과 같은 메시지를 디스플레이한다.

File cannot be copied onto itself

0 file(s) copied

☞ /v 옵션 사용하기

MS-DOS가 기록을 위한 구동을 확인할 수 없다면, 에러 메시지를 디스플레이한다. 비록 COPY 명령어에서는 기록 에러가 거의 발생하지는 않지만 /v 옵션을 지정한 경우에는 데이터가 정확히 기록되었는가를 확인할 수 있게 한다. 그러나 /v 옵션의 사용은 COPY 명령어의 실행 속도를 느리게 한다. 이것은 MS-DOS가 디스크 상에 기록된 각각의 섹터를 점검하기 때문이다. 그럼에도 불구하고 중요한 데이터일 경우에는 반드시 /v 옵션을 지정하는 것이 바람직하다.

☞ /a와 /b 옵션 사용하기

/a나 /b 옵션의 효과는 프롬프트 명령어 라인의 위치에 따라 다르다.

/a나 /b 옵션이 원본 파일명의 뒤에 올 경우, COPY는 다음과 같이 실행된다.

/a 파일을 아스키 파일로 취급하며, 첫번째 EOF보다 앞에 있는 데이터를 복사한다. 즉, COPY 명령어는 첫번째 EOF 문자와 그 뒤에 나오는 부분은 복사하지 않는다.

/b 모든 EOF 문자를 포함하는 전체 파일을 복사한다.

/a나 /b 옵션이 목적지 파일명의 뒤에 올 경우, COPY는 다음과 같이 실행된다.

/a EOF 문자를 그 파일의 마지막 문자로 첨가한다.

/b EOF 문자를 첨가하지 않는다.

☞ COPY 명령어로 파일 결합하기

다수의 파일을 +로 구분하면서 하나 이상의 원본 파일을 지정하는 경우, COPY 명령어는 단일 파일로 다수의 원본 파일을 결합한다. 만약, 원본 파일에 와일드 카드를 지정하고 목적지 파일에는 단일 파일명을 지정하는 경우에는 COPY는 원본 파일명에 부합되는 모든 파일을 결합하여 목적지 파일명으로 지정된 단일 파일을 만든다.

위의 경우, COPY는 사용자가 /b 옵션을 지정하지 않는 한 결합할 파일이 아스키 파일이라고 가정한다. 즉, 파일의 결합은 아스키 파일을 디폴트 값으로 한다.

☞ 서브디렉토리에 있는 파일 복사하기

원본 디렉토리에 있는 모든 파일과 원본 디렉토리의 서브디렉토리에 있는 모든 파일을 한꺼번에 복사하는 옵션은 제공되지 않는다. 만약, 서브디렉토리까지 한꺼번에 복사하려면 XCOPY 명령어를 사용한다. 이에 대한 자세한 사항은 XCOPY를 참조하기 바란다.

☞ 0 바이트(zero length) 파일 복사하기

비어 있는 디렉토리는 파일의 길이가 0 바이트로 표시된다. 이처럼 0 바이트의 길이를 갖는 파일은 COPY 명령어를 사용하여 복사할 수 없다. 0 바이트의 파일을 복사하려면 XCOPY 명령어와 널(NUL) 문자를 사용한다. 이에 대한 보다 자세한 사항은 XCOPY를 참조하기 바란다.

☞ 파일의 시간과 날짜 변경하기

파일의 내용은 수정하지 않고, 파일에 시스템의 현재 시간과 날짜를 할당하려면 다음과 같은 형식으로 COPY 명령어를 사용한다. 여기에서 연속되는 2개의 콤마(,)는 목적지의 생략을 가리킨다.

copy /b source+,,

■ 사용 예

다음의 COPY 명령어는 원본 파일을 복사하고 파일을 복사하고, 반드시 목적지 파일의 마지막에 EOF 문자를 추가한다. 이것은 워드프로세서나 기타 편집기에서 아스키 파일로 저장하는 경우에 파일의 마지막에 EOF 문자를 추가하는 것과 동일한 효과를 갖는다.

copy abc.txt def.txt /a

현행 디렉토리에서 readme.doc 파일을 C드라이브에 있는 WORDDATA 디렉토리에 복사하려면 다음과 같이 COPY 명령어를 사용한다.

copy readme.doc c:\worddata

위의 예에서 만약 C드라이브에 WORDDATA라는 디렉토리가 없다면, 원본 파일 readme.doc을 C드라이브의 루트 디렉토리에 worddata라는 파일명으로 복사한다.

다수의 파일을 하나의 파일로 결합하기 위해서는 파일의 모든 이름을 명령어 프롬프트 라인에 원본 매개변수처럼 열거한다. 열거할 때 각각의 원본 파일은 + 기호로 구분한다. 다음은 ABC.TXT, DEF.TXT, GHI.TXT 파일을 ABCDEF.TXT 파일로 결합하는 예이다.

copy abc.txt+def.txt+ghi.txt abcdef.txt

위의 예에서 결합된 파일의 날짜와 시간은 현재 시스템의 날짜와 시간으로 할당된다. 만약, 파일을 결합할 목적지 파일을 지정하지 않은 경우에는 원본 파일의 첫번째 파일로 할당한다. 다음은 ABC.TXT, DEF.TXT, GHI.TXT 파일을 ABC.TXT 파일로 결합하는 예이다.

copy abc.txt+def.txt+ghi.txt

TXT라는 확장자를 가진 모든 파일을 하나의 파일로 결합하기 위하여 와일드 카드를 사용할 수 있다. 다음은 TXT 확장자를 갖는 모든 파일을 REPORTS.DOC 파일로 결합하는 예이다.

copy *.txt reports.doc

위의 예는 아스키 파일을 결합하는 예이다. 따라서 각 원본 파일의 처음에 나오는 EOF까지 결합된다. 그러나, 다수의 EOF가 포함된 파일을 결합하는 경우에는 이진 파일 형식으로 파일을 결합하여야 한다. 다음은 다수의 EOF 문자를 포함한 아스키 파일을 제외되는 부분이 없이 전부 결합하기 위하여 사용하는 방법이다.

copy /b *.txt reports.doc

위의 예에서 원본 파일이 아스키 파일인 경우에도 이진 파일로 취급하도록 하면 Ctrl+Z를 EOF 문자로 취급하지 못하도록 막아 줌으로써 제외되는 부분이 없어진다.

실행 파일인 EXE 파일은 이진 파일로 구성되어 있는데, 이처럼 이진 파일로 이루어진 파일도 COPY 명령어를 이용하여 결합할 수 있다. 다음은 와일드 카드를 사용하여 현행 디렉토리의 이진 파일인 EXE 확장자를 갖는 모든 파일을 COMBIN.EXE 파일로 결합하는 예이다.

copy /b *.exe combin.exe

위의 예에서 다수의 EXE 파일을 결합하는 경우에는 각 원본 파일의 내부 형식의 상이함으로 인하여 실행되지 않을 수 있다.

다음의 예는 TXT 확장자를 갖는 파일을 같은 이름을 갖는 REF 파일에 결합하고, 결합한 파일을 같은 이름의 DOC 확장자를 가진 파일로 만들도록 하는 명령이다. 즉, FILE1.TXT와 FILE1.REF를 결합하여 FILE1.DOC 파일을 만들고, FILE2.TXT와 FILE2.REF를 결합하여 FILE2.DOC 파일을 만든다. 이런 식으로 계속하여 FILEn.TXT와 FILEn.REF를 결합하여 FILEn.DOC 파일을 만들 때까지 계속 반복한다.

copy *.txt+*.ref *.doc

위의 경우와는 달리 현행 디렉토리에 있는 모든 TXT 파일과 REF 파일을 하나의 파일인 TOTAL.DOC로 결합하려면 다음과 같이 COPY 명령어를 사용한다.

copy *.txt+*.ref total.doc

DEL (ERASE)

MS-DOS에서는 사용자가 지정한 파일을 삭제하는 명령어를 제공하고 있다. 지정한 파일을 삭제하는명령어는 DEL과 ERASE인데, 두 명령어는 동일한 것으로 간주된다.

DEL 명령어에서 파일을 삭제할 때 와일드 카드를 사용하여 일련의 파일을 동시에 삭제할 수 있고, 파일을 삭제할 때 이를 확인하기 위한 /p 옵션을 제공하고 있다. 이 명령어를 사용하여 읽기 전용 속성, 시스템 속성, 숨김 속성을 가진 파일이나 서브 디렉토리에 있는 파일을 동시에 삭제할 수 없다. 또한, 파일의 속성을 지정하여 특정 속성을 가진 파일만을 삭제할 수 없다.

참고로, Windows NT에서 제공하는 MS-DOS 서브 시스템에서는 이러한 기능을 제공하는 옵션을 제공하고 있다. 즉, Windows NT에서는 DEL 명령어에 읽기 전용 속성을 가진 파일을 삭제하는 /f 옵션, 지정한 화일명에 해당하는 파일이 서브디렉토리에 있는 경우에도 이를 삭제할 수 있는 /s 옵션, 삭제확인을 위한 메시지를 디스플레이하지 않도록 하는 /q 옵션, 그리고 파일의 속성을 지정하여 지정된 속성을 가진 파일을 삭제하는 /a 옵션을 제공하고 있다.

Windows NT에서는 지정한 파일만 서브디렉토리에 있는 파일을 삭제하는 옵션을 제공하고 있는데 반하여, MS-DOS에서는 지정한 디렉토리를 삭제하는 명령어를 제공한다. 사용자가 지정한 디렉토리를 삭제하는 명령어는 DELTREE로써 해당 디렉토리 내에 서브디렉토리를 포함하고 있으면 모든 서브디렉토리도 삭제한다. 이에 관한 보다 자세한 사항은 본 장의 DELTREE 명령어를 참조하기 바란다.

MS-DOS에서 DEL 명령어를 이용하여 파일을 삭제하는 경우 디스크 상의 물리적인 위치에 있는 파일을 삭제하지는 않는다. 즉, 파일 할당표(FAT)에서 파일에 관한 정보를 삭제하고, 파일명의 첫문자만 널문자로 변경한다. 따라서 DEL 명령어를 사용하여 삭제한 파일은 다른 파일이 기록되기 전까지는 UNDELETE 명령어에 의하여 이를 복구할 수 있다. 삭제된 파일의 복구에 관한 자세한 사항은 UNDELETE 명령어를 참조하기 바란다.

■ 사용법

DEL [/P] [drive:][path] filename

ERASE [/P] [drive:][path] filename

■ 옵션 및 매개변수

[drive:][path] filename 삭제할 파일의 경로와 이름을 지정한다. 다수의 파일을 삭제하기 위하여 와일드 카드(* 혹은 ?)를 사용할 수 있다.

/p 지정된 파일을 삭제하기 전에 삭제 확인을 위한 메시지를 디스플레이한다. 와일드 카드를 사용하여 다수의 파일을 삭제하는 경우에는 각각의 파일을 삭제하기 전에 삭제할 것인지를 확인한다.

■ 참고 사항

☞ /p 옵션 사용하기

/p 옵션을 사용하면 DEL 명령어는 파일의 이름을 디스플레이하고 삭제 확인을 위하여 다음과 같은 형식으로 메시지를 디스플레이한다.

filename, Delete (Y/N)?

디스플레이되어 있는 파일을 삭제하려면 Y를 누르고, 삭제하지 않고 취소하려면 N을 누른다. 만약, 와일드 카드를 사용하여 일련의 파일을 지정하였다면 N을 눌렀을 때 삭제할 다음 파일명을 디스플레이한다. DEL 명령어의 실행을 중지시키려면 키보드 상에서 <Ctrl>+<C>를 누른다.

☞ 하나 이상의 파일을 한꺼번에 삭제하기

DEL 명령어 뒤에 와일드 카드를 사용하거나 파일명을 생략하고 드라이브명과 경로만 지정하는 경우에는 일련의 파일을 삭제할 수 있다. 즉, del \work와 del \work\*.* 혹은 del \work\.은 모두 WORK 디렉토리 내의 모든 파일을 삭제하라는 것이다.

와일드 카드를 사용하거나 경로만 지정한 경우에는 일련의 파일군이 삭제되는데, 이러한 경우에는 신중을 기하여야 한다. MS-DOS에서는 일단 삭제된 파일은 복구하지 못하는 경우가 발생할 수 있기 때문이다.

주의: 디스크에서 일단 파일이 삭제되면 삭제된 파일을 복구할 수 없는 경우가 발생한다. 즉, 삭제된 파일은 시스템에 빈 공간으로 보고되기 때문에 삭제된 파일의 위치에 다른 파일이 기록되는 경우에는 UNDELETE 명령어를 사용하여 삭제된 파일을 복구할 수 없는 것이다. 만약, 실수로 원하지 않는 파일을 삭제한 경우에는 현재 하던 작업을 즉시 중단하고 다른 파일을 기록하기 전에 UNDELETE 명령어를 사용하여 즉시 복구하기 바란다.

■ 사용 예

C 드라이브의 TEMP라는 디렉토리에 있는 모든 파일을 삭제하려면 다음 명령어 중에서 아무 것이나 선택하여 사용할 수 있다.

del c:\temp

del c:\temp\*.*

del c:\temp\.

현행 디렉토리에 있는 TMP 확장자를 갖는 모든 파일을 삭제하되 각각의 파일을 삭제하기 전에 사용자에게 삭제할 것인지를 확인하도록 하려면 다음과 같이 DEL 명령어를 사용한다.

del *.tmp /p

DIR

이 명령어는 디렉토리에 있는 파일 목록을 열람하기 위하여 사용하는 것으로, DIR을 옵션이나 매개변수 없이 사용하면 디스크의 볼륨 레이블과 시리얼 번호, 하나의 디렉토리 혹은 확장자를 포함하는 파일명, 파일의 크기, 파일이 마지막으로 수정된 날짜와 시간, 목록으로 만들어진 전체 파일의 숫자 및 각 파일의 크기의 총합, 그리고 디스크 상에 남아 있는 여유 공간을 바이트 단위로 디스플레이한다.

참고로, Windows NT에서는 NTFS 파일 시스템을 제공하는데 여기서는 255자의 긴 파일명을 지원하므로 DOS에서의 DIR 명령어와는 다른 형식으로 디스플레이되고, 긴 파일 이름을 디스플레이하는 옵션과 긴 파일 이름을 가진 경우 FAT 파일 시스템과의 호환성을 유지하기 위하여 제공되는 8 3자의 짧은 파일 이름을 디스플레이하는 옵션을 추가로 제공하고 있다. 이 외에 각각의 파일에 타임 필드를 부여하고 이를 기준으로 파일 목록을 디스플레이하는 옵션을 제공한다.

■ 사용법

DIR[drive:][path][filename] [/P] [/W] [/S] [/B] [/L] [/C] [/O[[:]sortorder]] [/A[[:]attribute]]

■ 옵션 및 매개변수

[drive:][path] 파일 목록을 열람할 드라이브와 디렉토리를 지정한다.

filename 파일 목록을 보고자 하는 파일명을 지정한다. 여기서는 와일드 카드를 사용하여 일련의 파일군을 지정할 수 있다.

/p 파일 목록을 디스플레이할 때 한 화면 단위로 디스플레이한다. 다음 화면을 보기 위하여 임의의 키를 누른다.

/w 한 행에 파일이나 디렉토리를 5개씩 확장하여 디스플레이한다. 이 경우 파일 크기와 날짜/시간은 디스플레이되지 않는다.

/s 지정된 디렉토리와 모든 서브디렉토리에서 지정된 파일 목록을 디스플레이한다.

/b 한 행에 확장자를 포함하는 파일명과 디렉토리명을 디스플레이하는데 있어 각 파일의 크기나 날짜/시간 등의 정보를 디스플레이하지 않는다. 즉, /w 옵션과 동일하나 각 라인당 하나의 파일만 디스플레이한다는 점에 차이가 있다. 만약, /w 옵션과 /b 옵션을 동시에 지정한다면 /w 옵션은 무시되고 /b 옵션이 사용된다.

/l 정렬되지 않은 디렉토리 이름과 파일명을 소문자로 디스플레이한다. 그러나, 확장명은 소문자로 표시하지 않는다.

/c[h] 공간늘림 프로그램을 사용하여 압축된 디스크의 압축률을 8K 클러스터 단위로 디스플레이한다. /ch 옵션을 사용하면 공간늘림 프로그램을 사용해 압축된 디스크의 압축률을 HK 클러스터 단위로 디스플레이한다. 이 옵션을 사용하는 경우 /w, /b 옵션은 무시된다.

/o[[:]sortorder] 이 옵션은 DIR이 파일 목록을 정렬하여 디스플레이하도록 하는 옵션이다. 만약, 이 옵션을 생략하면 DIR 명령어는 해당 디렉토리 내에 기록되어 있는 순서대로 파일 목록을 디스플레이한다. 만약, /o 옵션만 사용하고 소팅 방법을 지정하지 않은 경우에는 알파벳순으로 정렬된 디렉토리를 먼저 디스플레이하고, 그 다음에 알파벳 순서로 정렬된 파일 목록을 디스플레이한다. 옵션 /o와 매개변수 사이의 콜론(:)은 임의로 생략할 수 있다.

다음은 sortorder에 사용할 수 있는 변수이다. 이 값은 둘 이상 조합하여 사용할 수 있지만 스페이스로 분리해서는 안된다.

n 파일명의 알파벳 순서로 정렬하여 디스플레이한다.

-n 파일명의 알파벳 역순으로

e 확장명의 알파벳 순서로 정렬하여 디스플레이한다.

-e 확장명의 알파벳 역순으로 정렬하여 디스플레이한다.

d 가장 먼저 만들어진 것부터 정렬하여 디스플레이한다.

-d 가장 나중에 만들어진 것부터 정렬하여 디스플레이한다.

s 파일 크기가 가장 작은 것부터 큰 순으로 정렬하여 디스플레이한다.

-s 파일 크기가 가장 큰 것부터 작은 순으로 정렬하여 디스플레이한다.

g 디렉토리 목록을 파일 목록보다 먼저 디스플레이한다.

-g 파일 목록을 디렉토리 목록보다 먼저 디스플레이한다.

/a[[:]attribute] 사용자가 지정한 파일 속성을 가진 디렉토리와 파일만 디스플레이한다. 만약 이 옵션을 생략하면 DIR은 숨김 속성과 시스템 속성을 가진 파일을 제외한 모든 파일을 디스플레이한다. /a 옵션과 파일 속성 사이의 콜론(:)은 임의로 생략할 수 있다.

다음은 파일 속성에 사용할 수 있는 변수에 대한 설명이다. 이 값들은 둘 이상 조합하여 사용할 수 있지만 스페이스로 분리해서는 안된다.

h 숨김 속성을 가진 파일만 디스플레이한다.

-h 숨김 속성이 없는 파일을 모두 디스플레이한다.

s 시스템 속성을 가진 파일만 디스플레이한다.

-s 시스템 속성이 없는 파일을 모두 디스플레이한다.

d 디렉토리만 디스플레이한다.

-d 디렉토리를 제외하고 파일만 디스플레이한다.

a 기록 속성을 가진 파일만 디스플레이한다.

-a 기록 속성이 없는 파일을 모두 디스플레이한다.

r 읽기 전용 속성을 가진 파일만 디스플레이한다.

-r 읽기 전용 속성이 없는 파일을 모두 디스플레이한다.

■ 참고 사항

☞ DIR에 와일드 카드 사용하기

DIR 명령어에서도 다른 명령어와 마찬가지로 와일드 카드를 사용할 수 있다. 즉 와일드 카드를 사용하여 일련의 파일군을 목록으로 디스플레이할 수 있다.

☞ 디스플레이될 파일 속성 지정하기

DIR 명령어를 이용하여 각각의 파일이 가지고 있는 파일의 속성을 지정하여 목록을 디스플레이할 수 있다. 즉, DIR 명령어의 /a 옵션은 지정된 파일 속성을 가진 모든 파일을 디스플레이한다. 파일 속성을 지정하는 경우에도 둘 이상의 속성을 동시에 지정할 수 있다. 예를 들어 DIR 명령어에 /a:r-h 옵션을 지정한 경우에는 읽기 전용 속성을 가진 파일 중에서 숨김 속성이 아닌 파일만 디스플레이한다. 마찬가지로 /ar-h도 같은 효과를 갖는다.

☞ 디스플레이될 파일 목록 정렬하기

파일을 디스플레이할 때 디스플레이하는 순서를 지정할 수 있다. 디스플레이하는 순서를 지정할 때 파일명, 확장자, 날짜/시간, 파일 크기 별로 지정할 수 있다. 만약, 하나 이상의 값을 지정한 경우에는 먼저 첫번째 값으로 소팅한 다음 두번째 소팅 값으로 파일을 소팅하여 디스플레이한다. 예를 들면, DIR 명령어에 /o:e-s나 /oe-s 옵션을 사용한다면 먼저 확장명을 기준으로 정렬한 다음 동일한 확장명의 경우에는 파일 크기가 가장 작은 것부터 큰 순으로 정렬하여 디스플레이한다. 이 경우 확장명이 없는 경우에는 가장 먼저 나타나고, 다음으로 디렉토리명이 나타나며, 마지막으로 확장명를 가진 파일이 나타난다.

☞ 방향 전환 기호(>)와 파이프(|) 사용하기

DIR의 결과를 파일이나 주변 장치로 방향을 전환하기 위하여 사용하는 방향 전환 기호(>)나, DIR 결과를 다른 명령어에 보내기 위해 파이프(|)를 사용하는 경우 파일명만 디스플레이하기 위하여 /b 옵션을 사용한다. 모든 파일명이 filename에 맞도록 DIR이 현행 디렉토리와 서브디렉토리를 찾도록 지정하려면 /b와 /s 옵션을 사용할 수 있다. 이 경우 DIR은 그것이 찾는 각각의 filename에 대하여 라인당 한 경로로 드라이브 글자와 디렉토리 이름, 파일명과 확장자만 디스플레이한다.

만약, 방향 전환이나 파이프를 사용하려면 AUTOEXEC.BAT 파일에 TEMP 환경 변수를 설정해야 한다.

☞ DIR 명령어의 환경 설정하기

DIR 명령어를 사용하는데 있어 공통적으로 많이 사용하는 변수와 옵션들에 대해서는 SET 명령어를 이용하여 AUTOEXEC.BAT 파일에 미리 설정할 수 있다. DIR 환경을 미리 설정하는 경우에도 파일의 경로와 이름을 포함하여 DIR 명령어에 사용되는 모든 옵션을 조합하여 사용할 수 있다.

예를 들어, DIR 환경을 디폴트 형식으로 /p/s/b/o:e-s 옵션을 지정하여 사용하려면 AUTOEXEC.BAT 파일에 다음과 같은 명령어 라인을 추가시킨다.

set dircmd=/p/s/b/o:e-s

위에서 처럼 지정한 경우 명령어 해석기가 DIR 명령어를 만나면 페이지 단위로(/p), 서브디렉토리까지(/s), 확장aud 순서로 소팅한 다음(/o:e), 동일한 확장자를 갖는 파일은 크기의 역순으로 소팅하여(/o:-s) 디렉토리와 파일명만(/b) 디스플레이할 것이다.

위의 예에서는 파일의 크기나 날짜/시간이 나타나지 않으므로 이를 나타내고자 한다면 DIR 명령어를 사용할 때 다음과 같이 /b 옵션을 무시하도록 지정하여야 한다. 환경 변수에서 지정한 옵션을 취소하려면 각 옵션 앞에 마이너스(-) 기호를 반드시 붙여야 한다.

dir /-b

만약, DIR 환경 변수에 대한 모든 설정을 해제하려면 프롬프트 상에서 다음과 같이 SET 명령어를 사용한다.

set dircmd=

새로운 변수나 옵션을 DIR 환경 변수로 설정하려면 프롬프트 상에서 SET 명령어를 사용하여 DIR 환경 변수를 변경할 수 있다. 이렇게 새로 변경된 DIR 환경 변수는 다음에 SET 명령어를 이용하여 환경 변수를 변경하거나 다시 컴퓨터를 시동하기 전까지는 모든 후속 DIR 명령어에 유효하다.

DIR 명령어의 환경 변수의 설정 상태를 열람하려면 프롬프트 상에서 SET 명령어를 사용한다. MS-DOS는 SET 명령어를 만나면 모든 환경 변수와 그 목록을 디스플레이할 것이다. SET 명령어에 대한 보다 자세한 사항은 SET 명령어를 참조하기 바란다.

■ 사용 예

DIR 명령어를 사용하여 C드라이브에 있는 모든 디렉토리에 대한 목록을 전부 디스플레이할 때까지 하나의 디렉토리의 목록을 전부 디스플레이하고 난 다음에 다른 디렉토리의 목록을 디스플레이하되, 디스플레이될 목록이 알파벳 순서로 정렬되고 디렉토리명과 확장명를 포함하는 파일명만 디스플레이하도록 하려면 다음과 같이 DIR 명령어를 사용한다.

dir c:\ /s/o:ne/b

위의 예에서 DIR은 C드라이브의 루트 디렉토리에 있는 서브디렉토리를 먼저 나타낸 다음 각 파일을 이름과 확장명 순으로 정렬한다. 그리고 파일의 크기와 날짜/시간을 제외한 디렉토리와 파일명만 디스플레이한다. 루트 디렉토리가 끝나면 다음에 있는 서브디렉토리의 내용을 동일한 방법으로 계속한다.

위의 예에서 파일명과 확장명만 디스플레이하고 디렉토리의 이름을 생략하도록 하려면 다음과 같이 DIR 명령어를 사용한다.

dir c:\ /s/o:ne/b/a:-d

위의 예에서 디렉토리 목록을 프린트로 인쇄하려면 방향 전환 기호를 이용한다. 이것은 DIR 명령어가 어떤 옵션으로 지정되어 있든지 관계없이 PRN이나 LPTn을 사용하면 된다. PRN은 컴퓨터에 연결된 프린터가 하나인 경우에 사용할 수 있고, LPTn은 다수의 프린터가 연결되어 있는 경우에 LPT1, LPT2, LPT3 등의 각기 다른 프린터 포트로 출력하는 경우에 사용한다.

dir c:\ /s/o:ne/b/a:-d > prn

혹은

dir c:\ /s/o:ne/b/a:-d > lpt1

위의 예에서 프린터로 출력하는 대신에 디렉토리 목록을 아스키 파일로 저장하려면 PRN이나 LPTn 대신에 목록을 저장할 파일 이름을 지정한다. 다음의 예는 DIR의 출력을 C:\HWP\DATA 디렉토리에 있는 DIRHWP.TXT 파일로 저장하라는 예이다.

dir *.hwp > c:\hwp\data\dirhwp.txt

위의 예에서 C:\HWP\DATA 디렉토리에 DIRHWP.TXT 파일이 있으면 기존의 파일을 삭제하고 새로운 내용으로 대체되고, 파일이 없으면 새로운 파일을 만든다. 그러나 C:\HWP\DATA라는 디렉토리가 없는 경우에 MS-DOS는 다음과 같은 메시지를 디스플레이하고 DIRHWP.TXT를 만들지 않는다.

File creation error

C드라이브 상에 있는 모든 디렉토리(/s) 내의 파일 중에서 TXT라는 확장자를 가진 모든 파일을 파일명을 기준으로 정렬(/o:n)하여 디스플레이하는데, 그 방법으로는 한 라인당 다섯개(/w)의 파일을 나타내고 한 화면이 넘어가는 경우에는 잠시 중단(/p)하도록 하려면 다음과 같이 DIR 명령어를 사용한다.

dir c:\*.txt /o:n/s/w/p

위의 경우에서 확장 형식으로 각 디렉토리에 있는 TXT 확장자를 가진 모든 파일을 알파벳순으로 정렬하여 디스플레이하고 한 화면을 초과하는 경우에는 사용자가 임의의 키를 누르기 전까지 대기한다.

DIR 명령어는 일반적으로 시스템 속성이나 숨김 속성을 가진 파일은 디스플레이하지 않는다. 그러나 파일 속성을 기준으로 디스플레이할 수 있도록 하는 /a 옵션을 사용하면 숨김 파일이나 시스템 파일의 목록을 DIR 명령어를 사용하여 살펴볼 수 있다. 다음의 예는 C드라이브에 있는 모든 숨김 파일이나 시스템 파일을 디스플레이하도록 하는 것이다.

dir c:\ /s/a:hs

중요한 데이터를 백업하는데 있어 중요한 지표가 되는 파일의 기록 속성을 이용하면 백업하기 전에 백업될 파일의 목록을 미리 볼 수 있다. 즉, 기록 속성을 가진 파일만 백업하는 경우에 DIR 명령의 파일 속성을 이용한 목록 보기 옵션을 이용하여 목록을 보는 것이다. 다음의 예는 C드라이브에 있는 HWP라는 확장자를 갖는 모든 파일 중에서 기록 속성을 가진 파일만 디스플레이하도록 하는 예이다.

dir c:\*.hwp /s/a:a/p

MOVE

이 명령어는 MS-DOS 6.2에서 새로 추가된 명령어로, 하나 이상의 파일을 이동하거나 디렉토리의 이름을 변경하기 위하여 사용한다. MS-DOS 5.0 이하 버전에서는 이 명령어를 지원하지 않았기 때문에 파일을 이동하려면 복사와 삭제 명령어를 사용하였다. 특히, 파일의 이동이 잦은 경우에는 배치 파일을 만들어 사용하였다. 그러나. MS-DOS 6.2에서는 MOVE 명령어를 제공하기 때문에 파일을 보다 편리하게 이동할 수 있게 되었다.

■ 사용법

MOVE [/Y|/-Y] [source] [target]

■ 옵션 및 매개변수

/y 이 옵션은 파일을 목적지로 이동할 때 원본 파일로 목적지 파일을 대체하도록 하기 위하여 사용하는 것으로, MOVE 명령어의 디폴트 값이다. MS-DOS 6.0에서는 무조건 목적지 파일을 대체하였는데 버전 6.2에서는 사용자가 목적지 파일의 대체를 확인할 수 있도록 한 것이다.

/-y 이 옵션은 파일을 목적지로 이동할 때 원본 파일과 동일한 이름을 가진 파일이 목적지에 있을 때, 이를 대체할 것인가를 사용자에게 확인하도록 하기 위하여 사용하는 옵션이다. 이 옵션을 지정하지 않으면 디폴트로 목적지 파일을 원본 파일로 대체한다. 만약, 항상 목적지 파일을 대체하기 전에 사용자에게 확인하도록 하려면 SET 명령어를 사용하여 COPYCMD 환경 변수를 설정할 수 있다. 보다 자세한 사항은 본 장의 COPY 명령어를 참조하기 바란다.

source 이동시킬 원본 파일의 경로와 이름을 지정한다.

target 파일이 이동될 목적지의 경로와 이름을 지정한다.

■ 참고 사항

☞ MOVE 명령어의 효과

MOVE 명령어는 파일을 목적지 디렉토리로 COPY 명령어를 이용하여 복사한 후, 원본 파일을 삭제하는 것과 동일한 효과를 갖는다.

☞ 파일 이동중 이름 변경

하나의 파일을 새로운 디렉토리에 이동할 경우 목적지 디렉토리에 파일 이름을 지정하면 이동하면서 파일 이름을 바꿀 수 있다. 둘 이상의 파일을 이동할 경우는 목적지 디렉토리에 파일 이름을 지정할 수 없다. 만일 이름을 바꾸면서 이동할 경우 목적지 디렉토리에 동일한 이름의 파일이 있다면 그 파일은 사용자의 확인 과정없이 새로운 파일로 대체된다. 만약, 둘 이상의 파일을 이동할 때 목적지에 파일 이름을 지정하면 MS-DOS는 오류 메시지를 디스플레이한다.

☞ 디렉토리 이름의 변경

MOVE 명령어를 이용해 디렉토리의 이름을 변경할 수 있다. 이름을 변경하려는 디렉토리 이름과 새 디렉토리 이름을 지정하면 디렉토리 이름이 바뀌어진다. 하지만 PCTOOLS 7.0에서 제공하는 디스크 관리자(DM.EXE)처럼 디렉토리 자체를 다른 디렉토리 구조로 이동시킬 수는 없다.

예를 들어, C: 드라이브의 HWP 디렉토리를 HWP20PF 디렉토리로 이름을 변경하려면 다음과 같이 MOVE 명령어를 사용한다.

move c:\hwp c:\hwp20pf

☞ 종료 코드

MOVE가 성공적으로 파일을 이동하였거나 디렉토리의 이름을 변경하였다면 운영 체제로 종료 코드 0을 돌려준다. 만약, MOVE 명령어가 정상적으로 파일을 이동시키지 못하였거나 디렉토리의 이름을 변경하지 못한 경우에는 종료 코드 1을 운영 체제로 돌려준다.

■ 사용 예

C:\DATA 디렉토리에서 DOC 확장자를 가진 모든 파일을 C:\HWP\DATA 디렉토리로 이동하고, 확장자를 HWP에서 H15로 변경하려면 다음과 같이 MOVE 명령어를 사용한다.

move c:\\data\*.hwp c:\\hwp\data\*.h15

C 드라이브의 DATA 디렉토리를 HWPDATA 디렉토리로 이름을 변경하려면 다음과 같이 MOVE 명령어를 사용한다.

move c:\data c:\hwpdata

RENAME (REN)

이 명령어는 파일 이름을 변경하기 위하여 사용한다. 사용자는 지정된 파일명에 맞는 모든 파일을 재명명할 수 있다. 그러나 이 명령어는 동일 디렉토리 내에서의 파일 이름을 변경할 수 있을 뿐이고, 드라이브나 디렉토리의 이름을 다르게 지정하거나, 파일을 다른 디렉토리로 이동시키기 위하여 사용할 수 없다.

■ 사용법

RENAME

REN [drive:][path] filename1 filename2

■ 옵션 및 매개변수

[drive:][path] filename1 이름을 변경할 파일의 경로와 이름을 지정한다. 다수의 파일을 지정하기 위하여 와일드 카드를 사용할 수 있다.

filename2 파일에 관한 새로운 이름을 지정한다. 만약, 파일 이름에 와일드 카드를 사용한 경우에는 동일한 형식으로 재명명해야 한다. 여기에는 새로운 드라이브나 경로를 지정할 수 없다. 만약, 다른 드라이브나 디렉토리로 파일을 이동하려면 MOVE 명령어를 사용한다. 자세한 사항은 앞에서 설명한 MOVE 명령어를 참조하기 바란다..

■ 참고 사항

☞ RENAME 명령어에 와일드 카드 사용하기

사용자는 filename1이나 filename2에 와일드 카드를 사용하여 다수의 파일을 지정할 수 있다. 만약, filename2에만 와일드 카드를 사용하는 경우에는 filename1에 상응하는 문자들과 동일한 것으로 취급한다.

☞ RENAME 명령의 사용상의 제한

파일명을 변경하기 위하여 REN 명령어를 사용하는 경우 이미 존재하는 파일명을 filename2로 지정하면 REN은 다음과 같은 메시지를 디스플레이한다.

Duplicate file name or file not found

■ 사용 예

현행 디렉토리에 있는 파일 중에서 TXT 확장자를 가진 모든 파일의 확장자를 DOC로 변경하고자 하는 경우, 다음과 같이 RENAME 명령어를 사용한다.

rename *.txt *.doc

B드라이브 상의 디스크에 있는 파일 중에서 APL.WR1파일을 APRIL.WR1으로 파일명을 변경하려면 다음과 같이 REN 명령어를 사용한다.

ren b:apl.wr1 April.*

UNDELETE

이 명령어는 DEL 명령어나 기타 다른 유틸리티를 사용하여 삭제된 파일을 복구하기 위하여 사용한다. 이 명령어와 함께 UNFORMAT 명령어가 있는데 이 명령어는 FORMAT 명령어에 의해 삭제된 플로피디스크를 복구하기 위하여 사용된다.

MS-DOS에서는 삭제된 데이터를 복구하기 위하여 3단계 보호 기법을 제공한다. 즉, 삭제된 트랙을 보호하는 기법, 삭제된 목록을 보호하는 기법, 그리고 삭제된 파일을 추적할 수 있는 기법이 그것인데 이러한 보호 기법에 관해서는 뒤에서 설명할 "참고 사항"을 참조하기 바란다.

■ 사용법

UNDELETE [[drive:][path] filename] [/DT | /DS | /DOS]

UNDELETE[/LIST|/ALL|/PURGE[:drive]|/STATUS|/LOAD|/U| /S[:drive]|/Tdrive[-entries]]

■ 옵션 및 매개변수

[drive:][path] filename 복구할 파일군 또는 파일의 위치와 이름을 지정한다. 만약, 드라이브와 디렉토리를 지정하지 않으면 현행 디렉토리의 모든 삭제된 파일을 복구한다.

/list 복구 가능한 파일의 목록만 디스플레이하고 실제로 복구하지는 않는다. [drive:][path] filename 매개변수와 /dt, /ds, /dos 옵션은 이 옵션으로 만들어지는 목록을 제어한다.

/all 각 파일을 확인하지 않고 모두 복원시킨 경우 지워진 파일 정보를 저장한 파일이 있으면 이 파일을 이용하고, 없으면 디렉토리를 이용해서 복원시키는데, 첫 글자는 "#"로 대치한다. 만약, 같은 이름이 나타나면 "#%&0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" 문자를 순서대로 사용하여 대치한다.

/dos 삭제된 파일에 대해서 MS-DOS가 디렉토리에 기록해둔 정보를 참고하여 각 파일마다 확인하면서 복원한다. 만약, 삭제 추적 파일이 있으면 이를 무시하도록 한다.

/dt 추적 파일에 저장된 파일만 확인하면서 복원한다.

/ds 파일을 삭제할 때 삭제된 파일을 저장하는 공간인 SENTRY 디렉토리 목록에 있는 파일만 확인하면서 복원한다.

/load UNDELETE.INI 파일에 정의되어 있는 정보를 사용하여 복구된 메모리 상주 프로그램을 메모리로 읽어들인다. UNDELETE.INI 파일이 없으면 삭제 복구 프로그램은 디폴트 값을 사용한다.

/u 복구된 프로그램의 메모리 상주 부분을 읽어들이지 않으면, 삭제된 파일의 복원 가능성을 없앤다.

/purge[:drive] SENTRY 디렉토리의 내용을 삭제한다. 지정된 드라이브가 없으면 삭제 복구 프로그램은 디렉토리의 현행 드라이브에서 찾는다.

/status 드라이브의 삭제 보호 형태를 디스플레이한다.

/s[:drive] 보호, 삭제, 감시자 단계를 가능하게 하고 삭제 복구 프로그램은 프로그램의 메모리 상주 부분을 읽어들인다. 프로그램을 기록한 정보는 지정된 드라이브의 삭제된 프로그램을 복구하는데 사용된다. 드라이브를 지정하지 않았다면 이 옵션을 사용하여 현행 드라이브의 보호, 삭제, 감시자를 가능하게 한다. /S 옵션을 지정해 메모리 상주 프로그램을 UNDELETE.INI 파일에 정의된 정보를 사용하여 메모리로 읽어 들인다.

/Tdrive[-entries] 보호된 부분의 삭제 추적 단계를 가능하게 하고, 삭제 복구 프로그램의 메모리 상주 부분을 읽어 들인다. 프로그램이 기록한 정보는 삭제된 파일을 복구하는데 사용된다. 필요한 드라이브 매개변수는 삭제된 파일에 관한 정보를 저장하고 삭제 복구 프로그램을 사용하려는 디스크를 포함하는 드라이브를 지정한다.

entries는 항목 매개변수로 1∼999 사이의 값을 가지는데 삭제 추적 파일 (PCTRACKR.DEL)에서 최대 항목의 수를 지정한다. 만약 항목 매개변수의 값을 지정하지 않으면 복구 프로그램은 디스크의 형태에 따라 다른 값을 디폴트로 사용한다. 다음은 디스크의 크기, 파일의 크기, 항목의 디폴트 값에 관한 사항이다.

디스크 크기

항 목

파일크기

디스크 크기

항 목

파일크기

360 KB

25

5 K

20 MB

101

18 K

720 KB

50

9 K

32 MB

202

36 K

1.2 MB

75

14 K

32MB 이상

303

55 K

1.44MB

75

14 K

   

■ 참고 사항

☞ 사용상의 주의

JOIN이나 SUBST 명령을 사용하여 방향 전환된 드라이브를 삭제 추적해서는 안된다. 또한, ASSIGN 명령을 사용하려면 삭제 추적을 설치하기 전에 삭제복구 프로그램을 사용해야만 한다.

디스크의 파일을 일단 삭제하면 복구할 수 없을 수도 있다. 삭제 복구 프로그램을 사용해 삭제된 파일을 복구할 수 있다 해도 다른 파일이 만들어지지 않았거나 디스크 내용이 변경되지 않았을 때만 확실하게 복구할 수 있다. 원하지 않는 파일을 지웠을 경우 즉시 하던 일을 멈추고 삭제 복구 프로그램을 사용해 파일을 복구해야 한다.

☞ 보호 단계

MS-DOS는 사용자의 실수로 삭제한 파일을 복구할 수 있도록 하기 위하여 삭제 감시자, 삭제 추적자, 표준의 3단계의 보호 기법을 제공한다.

삭제 감시자는 삭제된 파일 복구시 최상의 방법을 제공하는 것으로, 메모리와 디스크 공간을 필요로 한다. 삭제 추적자는 삭제 감시자와 같은 양의 메모리를 차지하지만 디스크 공간은 더 적게 차지한다. 보호의 가장 낮은 단계는 표준으로 메모리나 디스크 공간을 차지하지 않는 대신 다른 파일이 만들어지지 않은 위치에서만 삭제된 파일을 복구할 수 있다.

☞ 삭제 감시자

삭제 감시자는 복구하려는 파일을 가장 확실하게 복구할 수 있도록 가장 높은 단계의 보호 기법을 제공한다. 이 단계는 SENTRY라는 숨겨진 디렉토리를 만든 다음, 사용자가 파일을 삭제하면 실제로 파일을 삭제하는 것이 아니고 파일 할당표(FAT)에서만 파일의 위치에 관한 기록을 현재 위치에서 SENTRY 디렉토리로 옮긴다. 만약, 사용자가 파일을 복구하면 파일의 원위치로 파일 할당표를 변경한다.

SENTRY 디렉토리의 크기와 파일은 하드디스크 전체 크기의 7%로 제한되어 있다. 따라서, 파일이나 디렉토리를 제한 용량보다 많이 삭제하면 새로 삭제될 파일의 크기만큼 가장 오래된 파일을 실제로 삭제한다.

SENTRY 디렉토리에 추가로 디스크 공간이 필요한 경우, 삭제 감시자는 삭제 복구 프로그램의 메모리 상주 부분에 13.5K의 메모리 공간을 요구한다.

☞ 삭제 추적자

삭제 추적자는 삭제된 파일을 복구할 때 MS-DOS에서 제공하는 3단계 중에서 중간 단계를 제공하는 것으로, 삭제된 파일의 위치를 기록하는 PCTRACKER.DEL이라는 숨겨진 파일을 만든다. 파일을 삭제할 때 파일 할당표(FAT)가 다른 파일이 위치할 수 있는 공간의 위치를 다른 곳을 지시하도록 바꾼다. 즉 다른 파일이 기록될 때 바로 이전에 삭제된 파일의 위치에 놓여지지 않게 함으로써 삭제된 파일의 복구가 가능하도록 하는 것이다. 그러나 일정 시간이 경과된 후에 파일이 삭제된 위치에 다른 파일이 기록된다면 삭제된 파일을 완벽하게 복구할 수 없고 일부분만 복구할 수 있다.

삭제 추적자는 삭제 복구 프로그램 메모리 상주 부분과 PCTRACKER.DEL 파일의 최소 공간을 위해 13.5K의 메모리가 필요하다.

☞ 표준

컴퓨터를 켜면 자동으로 실행되는 보호 단계이다. 사용자가 실수로 파일을 삭제를 했을 경우 MS-DOS에서 제공하는 삭제 복구를 위한 3단계중 가장 낮은 복구 단계이다. 그러나 메모리 상주 프로그램을 탑재할 필요도 없고, 메모리나 디스크 공간이 필요없다는 이점이 있다.

MS-DOS가 삭제된 파일의 위치에 다른 파일을 되도록 기록하지 않기 때문에 이 보호 단계를 사용하여 삭제된 파일을 복구할 수 있지만 다른 파일이 그곳에 기록되면 삭제된 파일을 하나도 복구할 수 없다.

☞ 파일 복구 방법

다음과 같이 /DOS, /DT, /DS 옵션을 사용한다. 옵션을 지정하지 않으면 삭제 감시자를 사용한다. 삭제 감시자가 사용될 수 없으면 삭제 추적자 파일을 사용한다. 추적 파일 삭제를 사용할 수 없으면 표준을 사용하여 파일을 복구한다.

☞ 디렉토리의 복구

만약, 삭제된 디렉토리를 복구할 수 없고, 삭제된 디렉토리에 파일이 있다면 그 파일도 복구할 수 없다. 디렉토리가 루트 디렉토리의 바로 아래의 하위 디렉토리라면 디렉토리를 복구하기 위해 삭제 복구 프로그램을 사용한 후, 다시 삭제 복구 프로그램을 사용해 파일을 복구하면 디렉토리와 그 안의 파일을 복구할 수 있다.

UNDELETE 명령어를 정확하게 사용하지 않으면 데이터를 잃어버릴 수 있으므로 주의해서 사용하여야 한다. 보통 UNDELETE 명령어는 루트 디렉토리 바로 아래의 하위 디렉토리인 경우에만 복구할 수 있다. 그러나 실수로 포맷한 디스크를 복구하기 위해 UNFORMAT 명령어를 사용하면, 모든 루트 디렉토리와 하위 디렉토리를 복구할 수 있다.

☞ UNDELETE.INI 파일의 디폴트 설정

삭제 복구 프로그램은 메모리로 탑재될 때 기본적인 설정 내용을 이용하기 위해 UNDELETE.INI 파일을 사용한다. 삭제 복구 프로그램을 메모리로 탑재했을 때 그 파일이 없으면 삭제 복구 프로그램은 모든 설정을 디폴트로 하여 UNDELETE.INI 파일을 새로 만든다.

삭제 복구 프로그램의 디폴트 값은 다음과 같다.

* 현행 드라이브에서 삭제 추적자 방법을 사용한다.

* TMP, VM?, WOA, SWP, SPL, RMG, IMG, THM, DOV 의 확장자를 갖는 파일을 제외한 모든 파일을 저장한다.

* 기록 비트 지정을 갖고 있는 파일을 저장하지 않는다.

* 7일이 경과된 파일은 삭제한다.

* 삭제된 파일이 쓸 수 있는 디스크 공간을 디스크 총량의 20 퍼센트로 제한한다.

☞ UNDELETE.INI 파일의 구성 요소

UNDELETE.INI 파일은 다음과 같이 5개의 구성요소로 이루어져 있다.

[sentry.drives], [sentry.files], [mirror.drives], [configuration], [defaults]

[sentry.drives] 삭제 감시자로 보호된 드라이브를 지정한다.

[sentry.files] 삭제 추적자나 삭제 감시자를 사용하여 보호된 파일을 지정하는데, 파일 앞에 있는 빼기 기호(-)는 파일이 저장되지 않았다는 것을 의미한다. [sentry.files] 부분에 정의된 디폴트 값은 다음과 같다.

[sentry.files]

*

[mirror.drives] 삭제 추적자로 보호된 드라이브를 지정한다.

[configuration] 다음과 같은 값을 정의한다.

* 기록 비트가 있는 파일의 보호 여부를 지정한다. 기록 비트가 있는 파일을 보호하려면 다음과 같이 입력한다.

archive=TRUE

이 값을 지정하지 않으면 디폴트로 기록 비트가 있는 파일을 저장하지 않도록 archive=FALSE로 지정된다.

* 삭제된 파일을 저장하고 있을 날짜를 다음과 같은 형식으로 지정한다. 디폴트는 7일이다.

days=7

* 삭제된 파일을 저장하기 위하여 확보할 공간을 디스크의 총량을 기준으로 퍼센트로 다음과 같이 지정한다. 디폴트 값은 디스크 총량의 20%이다.

percentage=20

[defaults] 복구할 파일의 추적 방법을 지정한다. 삭제 감시자 방법의 디폴트 값은 다음과 같다.

[defaults]

d.sentry=TRUE

d.tracker=FALSE

☞ 파일 보호 방법 변경

파일 보호 방법은 한번에 한가지 방법만 사용할 수 있다. 만약, 방법을 변경하려면 먼저 UNDELETE 명령어에 /U 옵션을 사용하여 메모리 상주를 제거한 다음 새로운 보호 방법을 지정한다. 예를 들어, 현재 설정되어 있는 보호 단계를 취소하고 현행 드라이브의 삭제 감시자 단계를 실행시키려면 다음과 같이 UNDELETE 명령어를 두번 사용한다.

undelete /u

undelete /s

☞ 보호된 드라이브

삭제 복구 프로그램은 프로그램을 실행할 때 지정된 드라이브에 관계없이 UNDEL- ETE.INI 파일에서 지정된 모든 드라이브를 보호한다. 예를 들어 UNDELETE.INI 파일에 다음과 같이 입력하면 C와 D 드라이브를 보호한다.

[sentry.drives]

C=

D=

위와 같이 UNDELETE.INI 파일에 지정되어 있는 경우, C와 D 드라이브 보호의 삭제 감시자 단계를 실행하려면 다음과 같이 UNDELETE 명령어를 사용한다.

undelete /sc

만약, C 드라이브만 보호하도록 하려면 UNDELETE.INI 파일의 [sentry.drives] 부분에서 "D="라고 된 라인을 삭제한 다음 삭제 복구 프로그램을 실핸한다.

■ 사용 예

삭제된 트랙을 가장 효율적으로 사용하면서 현행 디렉토리에 있는 삭제된 파일 모두를 하나씩 확인하면서 복구하려면 다음과 같이

undelete

C 드라이브의 루트 디렉토리에서 삭제된 파일중 BAT 확장명을 가진 삭제된 모든 파일을 복구하고, 사용자에게 삭제할 것인지를 확인하지 않도록 하려면 다음과 같이 UNDELETE 명령어를 사용한다.

undelete c:\*.bat /all

UNDELETE 프로그램의 메모리 상주 부분을 메모리로 탑재하고, SENTRY라는 숨겨진 디렉토리를 만들어내고 디렉토리에서 C 드라이브에서 지워진 파일을 옮기도록 하려면 다음과 같이 UNDELETE 명령어를 사용한다.

undelete /sc

UNDELETE 프로그램의 메모리 상주 부분을 메모리로 탑재하고 C 드라이브에 있는 400개의 삭제된 파일을 추적해서 PCTRACKER.DEL 이라는 파일을 만들도록 하려면 다음과 같이 UNDELETE 명령어를 사용한다.

undelete /tc-400

UNFORMAT

이 명령어는 디스크를 포맷 이전의 상태로 복구하기 위하여 사용하는 명령어로, 일반적으로 하드디스크나 플로피디스크를 실수로 포맷했을 때 사용한다. 이 명령어는 FORMAT 명령어와 마찬가지로 네트워크 드라이브나, SUBST 명령어를 사용해 방향 전환된 드라이브 등에는 사용할 수 없다.

만약, FDISK 명령어를 사용하여 하드디스크의 분할 영역을 삭제한 경우에는 이를 복구할 수 없다. 현재, 분할 영역을 복구하는 프로그램은 어떤 운영 체제나 유틸리티에서도 제공되고 있지 않다.

■ 사용법

UNFORMAT drive: [/L] [/TEST] [/P]

■ 옵션 및 매개변수

drive: 복구할 파일이 있는 디스크의 드라이브를 지정한다.

/l UNFORMAT 명령어를 수행하는 도중 발견되는 모든 하위 디렉토리와 파일 목록을 디스플레이하도록 하기 위하여 사용하는 옵션으로, 이 옵션을 지정하지 않으면 조각화된 하위 디렉토리와 파일의 목록만 디스플레이한다. 목록을 디스플레이하는 도중에 잠시 멈추도록 하려면 키보드 상에서 <Ctrl>+<S> 키를 누른다. 목록을 계속 디스플레이하기 위하여 사용자는 임의의 키를 누를 수 있다.

/test 이 옵션을 지정하면 실제로 하드디스크를 복원하지 않고, 디스크의 재생할 방법에 대한 정보를 디스플레이한다.

/p 디스플레이되는 메시지를 메시지를 LPT1으로 연결된 프린터로 방향을 전환한다.

■ 참고 사항

☞ 사용상의 제한

디스크를 초기화하기 위하여 FORMAT 명령어에 /u 옵션을 지정하여 실행한 경우에는 UNFORMAT 명령어를 사용하여 디스크를 복원시킬 수 없다. 따라서, 이미 사용된 디스크를 재포맷하기 위해서는 /u 옵션을 지정하지 않고 안전 포맷을 수행하고나, /q 옵션을 사용하여 빠른 포맷을 수행한다.

☞ 복구 방법

UNFORMAT은 루트 디렉토리의 정보와 디스크의 파일 할당표를 사용하여 디스크를 복구하는데, 디스크를 복구하면서 하위 디렉토리를 출력한다. 만약, /L 옵션을 지정하면 하위 디렉토리의 모든 파일 목록을 볼 수 있다.

UNFORMAT은 파일이 단편화되어 있으면 파일을 복구할 수 없다. 이런 경우, 파일을 버릴 것인지 파일 전부를 지워버릴 것인지 사용자에게 확인한다.

UNFORMAT은 파일이 완벽하게 복구되면 사용자에게 확인해오지 않는다. 그러나 단편화된 파일은 완벽하게 복구하지 못하는 경우가 생기기도 한다. 만약, 단편화된 파일의 일부분을 복구하지 못하면 프로그램은 실행되지 않는다. 데이터 파일이 손상된 경우에는 프로그램이 읽지 못하거나 자료의 일부분을 잃어 버린다. 완벽하게 데이터를 복구하는 방법은 백업 디스크에서 다시 복사하는 방법밖에 없다.

■ 사용 예

UNFORMAT으로 A 드라이브에 있는 포맷된 디스크를 복원할 수 있는 지를 확인하려면 다음과 같이 UNFORMAT 명령어를 사용한다.

unformat a: /test

A 드라이브의 포맷된 디스크를 복원하고 디스크에 있는 모든 파일과 하위 디렉토리의 목록을 디스플레이하도록 하려면 다음과 같이 UNFORMAT 명령어를 사용한다.

unformat a: /l

VERIFY

이 명령어는 파일을 디스크에 기록하는 경우 정확하게 기록되었는지를 확인할 것인지를 지정하기 위하여 사용하는데, 데이터를 베드 섹터에 기록되지 않도록 하여 데이터를 안전하게 보호하기 위하여 사용한다. 이 명령어는 CONFIG.SYS 파일이나 프롬프트 상에서 모두 사용할 수 있다.

만약, 데이터를 기록할 때 정확하게 기록되었는지를 확인하기 위하여 ON으로 설정한 경우에는 디스크에 파일을 기록한 후에 이를 검색하기 때문에 그만큼 속도가 느려진다.

■ 사용법

VERIFY [ON|OFF]

■ 옵션 및 매개변수

none ON이나 OFF를 지정하지 않고 이 명령어가 단독으로 사용되면 현재의 설정 상태를 디스플레이한다.

on|off MS-DOS가 데이터를 디스크에 기록할 때 정확하게 기록되었는지 확인한 것인지를 지정한다. ON은 기록을 확인하라는 것이고, OFF는 기록 확인을 하지 않도록 지정한다.

XCOPY

이 명령어는 서브디렉토리를 포함하여 파일과 디렉토리를 복사하기 위하여 사용하는 것으로, COPY 명령어를 사용하여 복사할 수 없었던 빈 디렉토리를 복사할 수 있다. 그러나, 시스템 혹은 숨김 속성을 갖는 파일은 복사할 수 없다. 시스템 속성이나 숨김 속성을 갖는 파일을 복사하려면 COPY 명령어를 이용하거나 ATTRIB 명령어를 이용하여 속성을 제거한 다음 XCOPY 명령어를 이용하여 복사한다.

COPY 명령어는 하나의 파일씩 파일 단위로 복사하지만 XCOPY는 버퍼 단위로 파일을 복사하기 때문에 다수의 파일을 읽고 다수의 파일을 동시에 기록한다. 따라서, COPY 명령어보다 더 빠르게 파일을 복사할 수 있다.

또한, DISKCOPY는 플로피디스크에서만 사용할 수 있고, 디스크를 물리적인 트랙 단위로 복사하는데 반하여 XCOPY는 파일을 물리적으로 복사하지 않기 때문에 디스크 상에 있는 파쇄를 피할 수 있고, 드라이브의 크기가 다른 경우나 하드디스크에서도 사용할 수 있다.

■ 사용법

XCOPY [/Y|/-Y] source [destination] [/A|/M] [/D:date] [/P] [/S [/E]] [/V] [/W]

■ 옵션 및 매개변수

/y 이 옵션은 파일을 목적지로 복사할 때 원본 파일로 목적지 파일을 대체하도록 하기 위하여 사용하는 것으로, XCOPY 명령어의 디폴트 값이다. MS-DOS 6.0 이하의 이전 버전에서는 무조건 목적지 파일을 대체하였는데 버전 6.2에서는 사용자가 목적지 파일의 대체를 확인할 수 있도록 한 것이다.

/-y 이 옵션은 파일을 목적지로 복사할 때 원본 파일과 동일한 이름을 가진 파일이 목적지에 있을 때, 이를 대체할 것인가를 사용자에게 확인하도록 하기 위하여 사용하는 옵션이다. 이 옵션을 지정하지 않으면 디폴트로 목적지 파일을 원본 파일로 대체한다. 만약, 항상 목적지 파일을 대체하기 전에 사용자에게 확인하도록 하려면 SET 명령어를 사용하여 COPYCMD 환경 변수를 설정할 수 있다. 보다 자세한 사항은 다음에 설명할 "참고 사항"을 참조하기 바란다.

source 복사할 원본 파일의 경로와 이름을 지정한다. sousce에는 반드시 드라이브나 경로를 포함하여야 한다.

destination 파일이 기록될 목적지를 지정한다. 목적지에는 드라이브 문자와 콜론, 디렉토리명, 파일명 등이 포함될 수 있고, 그 조합도 가능하다.

/a 기록 속성을 가진 원본 파일만 복사하고, 원본 파일의 기록 속성을 해제하지 않는다. 이 옵션은 /m 옵션과 함께 사용될 수 없다.

/m 기록 속성을 가진 원본 파일만 복사하고, /a 옵션과는 달리 복사한 원본 파일의 기록 속성을 제거한다.

/d:date 지정된 날짜 이후에 변경되어거나 수정된 원본 파일만 복사한다. 만약, date 값이 생략되고 /d 옵션만 사용되면, XCOPY는 기존의 목적지 파일의 시간보다 더 나중에 작성된 원본 파일을 모두 복사한다. 이 옵션은 사용자가 변경된 파일만 복사함으로써 파일이 갱신될 수 있도록 한다. 변경되었다는 것을 인식하는 것은 파일이 기록 속성을 가지고 있는가에 따라 결정된다.

/p 파일이나 서브디렉토리를 복사할 때 사용자에게 확인을 요구하는 메시지를 프롬프트한다.

/s 디렉토리가 비어 있지 않는 한, 디렉토리와 모든 서브디렉토리를 복사한다. 이 옵션을 사용하지 않는 경우, XCOPY는 단일 디렉토리에 있는 파일만 복사한다. "/s /e"와 같이 사용되면 비어 있는 디렉토리도 복사한다.

/e 디렉토리가 비어 있는 경우에도 모든 서브디렉토리를 복사한다. 이 옵션은 /s 옵션과 함께 사용된다.

/v 목적지 파일이 정확히 기록되었는지를 확인하도록 하는 옵션이다.

/w 파일의 복사를 시작하기 전에 다음과 같은 메시지를 디스플레이하고 사용자가 임의의 키를 누를 때까지 대기한다.

Press any key to begin copying file(s)

■ 참고 사항

☞ 환경 변수 지정하기

MS-DOS 6.2에서는 목적지에 원본 파일과 동일한 이름을 가진 파일이 있는 경우에 이를 대체할 것인가를 사용자에게 확인할 수 있는 옵션을 제공하는데, XCOPY 명령어는 디폴트로 목적지 파일을 원본 파일로 대체한다. 만약, 원본 파일로 목적지 파일을 대체하기 전에 사용자에게 대체 확인을 위한 메시지를 디스플레이하도록 하려면 SET 명령어를 사용하여 XCOPY 명령어의 환경 변수를 지정할 수 있다. 컴퓨터의 시동과 동시에 항상 확인할 필요가 있는 경우에는 AUTOEXEC.BAT 파일에 다음과 같이 XCOPY 명령어의 환경 변수를 지정할 수 있다.

set copycmd=/-y

위와 같이 COPY 명령어의 환경 변수를 지정한 경우에는 파일을 복사 혹은 이동하기 위하여 사용하는 모든 명령어 즉, COPY, MOVE, XCOPY 명령어 등에 모두 적용된다. 따라서, COPYCMD 환경 변수의 지정은 단순히 XCOPY 명령어에만 국한되는 것이 아니라 파일의 복사와 이동에 모두 적용된다는 것이다.

만약, COPYCMD 환경 변수를 목적지 파일을 대체할 때 사용자에게 확인하지 않도록 변경하려면 다음과 같이 SET 명령어를 사용한다.

set copycmd=

위의 예에서 /y 옵션을 사용하지 않는 것은 COPY, MOVE, XCOPY 명령어는 디폴트로 목적지 파일을 대체할 때 사용자에게 확인하지 않기 때문에 환경 변수를 삭제하기 위한 SET 명령어를 사용한 것이다.

☞ 목적지에 대한 디폴트 값

XCOPY 명령어를 사용할 때 목적지를 생략하면, XCOPY는 현행 디렉토리를 목적지 드라이브와 디렉토리로 사용한다.

☞ 목적지가 파일인지 디렉토리인지를 지정하기

사용자가 지정한 목적지가 기존의 디렉토리를 포함하지 않고, 목적지를 지정할 때 역슬래쉬(\)로 끝을 지정하지 않으면 XCOPY는 다음과 같은 형식으로 메시지를 디스플레이하고, 사용자에게 마지막으로 지정한 것이 파일인지 디렉토리인지를 확인하는 메시지를 프롬프트한다.

Does destination specify a filename

or directory name on the target

(F=File, D=Directory)?

만약, 사용자가 파일로 복사하려면 F를 누른다. 새로운 디렉토리로 만들도록 하려면 즉, 디렉토리로 복사되도록 하려면 D를 누른다.

☞ 목적지 파일의 기록 속성

XCOPY는 원본 파일이 기록 속성을 가지고 있건 가지고 있지 않건 관계없이 목적지 파일에 기록 속성을 부여한다. 만약, 기록 속성만 가진 원본 파일을 디렉토리로 복사하려면 COPY 명령어를 사용하기 바란다. 만약, 파일 속성에 관한 정보를 얻고자 하는 경우에는 "ATTRIB" 명령어나 "COPY" 명령어 부분을 참조하기 바란다.

☞ XCOPY와 DISKCOPY

서브디렉토리에 파일을 포함하는 디스크를 가지고 있고, 그것을 다른 유형의 디스크에 복사하려면 XCOPY 명령어를 사용해야 한다. 동일한 유형의 디스크인 경우에는 DISKCOPY를 사용할 수 있다. 즉, DISKCOPY 명령어는 디스크를 트랙 단위로 복사하기 때문에 반드시 원본과 목적지 디스크가 동일 유형일 것을 요구하고, 플로피디스크일 것을 요구한다.

이와 달리 XCOPY는 다른 유형의 디스크에도 사용할 수 있다. 즉, XCOPY는 트랙 단위가 아니라 파일 단위로 복사를 하기 때문이다. 따라서 디스크의 완전한 이미지 복사를 필요로 하지 않는 한 XCOPY를 사용한다.

☞ 종료 코드(Exit Codes)

다음 목록은 XCOPY 명령어의 종료 코드와 그에 대한 설명이다.

0 파일이 에러 없이 복사되었다.

1 원본 파일을 찾을 수 없다.

2 사용자가 XCOPY를 중단하기 위하여 <Ctrl>+<C>를 눌렀다.

3 초기화 에러가 발생하였다. 충분한 메모리 또는 디스크 영역이 부족하다.

4 사용자가 적절하지 않은 드라이브를 지정하였거나 명령어 라인에 적절하지 않은 형식을 사용하였다.

5 목적지 디스크에 쓰기 에러가 발생하였다.

사용자는 XCOPY 명령어에 의하여 시스템에 리턴된 종료 코드를 처리하기 위하여 배치 프로그램의 IF 명령어 라인에 errorlevel 매개변수를 사용할 수 있다. 배치 프로그램의 작성 방법에 관해서는 "사용 예" 부분을 참조하기 바란다.

■ 사용 예

A드라이브에 있는 디스크로부터 비어 있는 서브디렉토리를 포함한 모든 파일과 디렉토리를 B드라이브에 있는 디렉토리에 복사하려면 다음과 같이 XCOPY 명령어를 사용한다.

xcopy a: b: /s/e

위의 예에서 파일을 목적지로 기록한 후 정상적으로 기록되었는지 확인하려면 다음과 같이 XCOPY 명령어를 사용한다.

xcopy a: b: /s/e/v

C드라이브 상의 REPORTS 디렉토리에 있는 파일을 RAWDATE 디렉토리에 있는 파일 중에서 1993년 12월 31일 이후에 변경된 파일로 갱신하려면 다음과 같이 XCOPY 명령어를 사용한다.

xcopy c:\reports c:\rawdate /d:12/29/93

빈 디렉토리를 포함하여 C:\CUSTOM 디렉토리와 모든 서브디렉토리의 파일을 네트워크 드라이브 H상의 \PUBLIC\CUSTOM 디렉토리에 복사하고, 새로운 파일이 H에 복사될 때 복사되는 각 파일을 프롬프트하도록 하려면 다음과 같이 XCOPY 명령어를 사용한다.

xcopy c:\custom h:\public\custom /s/e/p

사용자는 XCOPY를 수행하는 배치 프로그램을 만들 수 있고, 에러가 발생하는 경우에 종료 코드를 처리하기 위하여 IF 명령어를 사용할 수 있다. 다음의 예는 종료 코드를 처리하기 위한 배치 프로그램 COPYIT.BAT 파일로 XCOPY의 원본과 목적지의 매개변수에 교체 가능한 변수를 사용하고 있다.

@echo off

rem copyit.bat transfers all filed in all subdirectories

rem of the source dirve or directory (%1) to the destination

rem drive or directory (%2)

xcopy %1 %2 /s/e

if errorlevel 5 goto write_err

if errorlevel 4 goto lowmemory

if errorlevel 2 goto abort

if errorlevel 1 goto not_source

if errorlevel 0 goto xcopy_ok

:write_err

echo 목적지 드라이브에 기록 에러가 발생하였습니다.

goto exit

:lowmemory

echo 파일을 복사하는데 메모리가 부족하거나, 적절하지 않은 드라이브

echo 명이나 잘못된 명령어 형식을 사용하였습니다.

goto exit

:abort

echo 사용자가 XCOPY를 중단하기 위하여 <Ctrl>+<C>를 눌렀다.

goto exit

:not_source

echo 원본 파일을 찾을 수 없습니다.

goto exit

:xcopy ok

echo 에러 없이 정상적으로 파일을 모두 복사하였습니다.

:exit

위의 COPYIT.BAT 배치 프로그램으로 C:\PRGMCODE 디렉토리에 있는 모든 파일과 그 서브디렉토리를 B드라이브에 복사하려면 다음과 같이 COPYIT 명령어를 사용한다.

copyit c:\prgmcode b:

위의 예는 c:\prgmcode가 %1을 대신하고, b:가 %2를 대신하여 사용되고, 옵션으로 /s/e가 사용된다. 만약, XCOPY가 실행되는 도중에 에러를 만나는 경우 배치 프로그램은 종료 코드를 읽고 해당 if errorlevel 문에서 가리키는 레이블로 이동한 다음, 사용자가 지정한 메시지를 디스플레이하고 배치 프로그램을 종료한다. 

반응형

'ETC' 카테고리의 다른 글

자유무역협정 [自由貿易協定, free trade agreement]  (0) 2008.12.19
각종 튜토리얼 링크 모음  (0) 2008.12.16
오픈아이디 (Openid) 발급받자  (0) 2008.12.16
해킨토시  (0) 2008.11.04
연발 고무줄총 만들기  (2) 2007.12.21
Comments