장 – 7
필요한 DOS 명령
소개
디스크에서 데이터를 복구하려고 시도하는 동안 손실을 복구하는 데 얼마나 많은 노력이 필요한지는 데이터 손실의 경우에 따라 다릅니다. 대부분의 경우 일부 중요한 DOS(디스크 운영 체제) 명령에 대한 충분한 지식이 있으면 더 적은 노력으로 데이터를 복구할 수 있습니다.
어떤 경우에는 복잡한 마음으로 이러한 명령을 사용해야만 프로그래밍 없이 데이터를 복구할 수 있습니다.
당신이 DOS와 그 명령에 대해 전혀 모른다고 가정합니다. DOS 명령 소개의 이 장에서는 데이터 복구에 도움이 될 수 있는 명령에 대해서만 배울 것입니다. 먼저 MS-DOS의 진화과정을 살펴보겠습니다.
간략한 역사
MS – DOS 운영 체제는 Intel 8086 마이크로프로세서 제품군을 기반으로 합니다. MS – DOS는 단순한 프로그램 로더에서 개인용 컴퓨터를 위한 정교하고 안정적인 운영 체제로 발전했습니다.
Microsoft 디스크 운영 체제(MS-DOS) 버전 1.0
IBM은 1980년대 초에 이 컴퓨터를 개발했습니다. 마이크로소프트는 MS-DOS 1.0을 개발했다. 1981년 8월에 출시되었으며 4000줄의 어셈블리 언어 소스 코드로 구성되어 있으며 8킬로바이트의 메모리에서 실행되었습니다.
그 직후, 1982년에 MS-DOS 버전 1.1이 출시되어 양면 320kb 플로피 디스크와 함께 작동했습니다. IBM에서 판매하는 DOS 버전을 IBM-DOS 또는 PC-DOS라고 합니다.
MS-DOS 버전 2.0
IBM이 10MB 하드 디스크 개발을 시작했을 때 Microsoft는 하드 디스크를 지원하도록 설계된 DOS 버전 2.0의 개발 작업을 시작했습니다. 지금까지 DOS 1.0은 그 전통을 이어받아 플로피 디스크 환경에 맞게 설계되었습니다. DOS 1.0의 주요 제한 사항 중 하나는 디렉토리가 최대 64개 파일로 제한된다는 것입니다.
MS-DOS 버전 2.0은 계층적으로 설계된 파일 시스템을 포함하도록 설계되었습니다. 계층적 파일 시스템은 모든 디렉토리가 파일과 다른 하위 디렉토리를 모두 포함할 수 있다는 점에서 중요합니다. 계층적 파일 시스템은 MS-DOS/IBM-DOS 운영 체제의 개발 플랫폼으로 사용되었던 UNIX 운영 체제에서 이미 사용 중이었습니다. 실제로 MS-DOS의 기본 개념 중 일부는 UNIX의 해당 개념과 유사합니다.
MS-DOS 버전 3.0 ~ 5.0
버전 3.0은 IBM PC/AT를 지원하기 위해 1984년 8월에 출시되었습니다. 버전 3.1은 1984년 11월에 출시되었으며 네트워킹 지원이 포함되었습니다. 1986년 1월 버전 3.2는 3.5인치 디스크를 지원했습니다. 1987년에는 IBM PS/2 계열 컴퓨터를 지원하는 주요 목적으로 IBM 버전 3.3이 출시되었습니다.
MS-DOS 버전 3.3에는 많은 새로운 기능과 명령이 추가되었습니다. DOS의 Compaq 버전 3.31에서는 32MB보다 큰 하드 디스크 파티션이 허용됩니다.
MS-DOS 버전 4.01은 32MB보다 큰 파티션도 읽습니다. 원래 MS-DOS 4.0으로 발행되었지만 일부 사소한 버그로 인해 다양한 수정 사항과 함께 업그레이드된 버전 4.01이 발행되었습니다. 이 버전에는 전체 화면, DOS SHELL이라는 메뉴 기반 인터페이스 및 확장 메모리 사양에 대한 추가 지원이 추가되었습니다.
버전 5.0은 모든 이전 버전의 DOS를 대체하도록 설계되었습니다. DOS 5.0에서는 IBM과 Microsoft 모두 문서가 유사하더라도 동일한 DOS를 판매하고 있었습니다. 메모리 요구 사항이 크게 감소했습니다. 확장 및 확장 메모리에 대한 지원이 크게 향상되었습니다.
DOS 편집기 "EDIT" 이 DOS 버전에 포함되었습니다. DOS SHELL은 완전히 새로운 것입니다. QBASIC은 BASICA 및 GWBASIC을 대체하기 위해 도입되었습니다. 이 버전은 적어도 일정 시간 동안 실수로 손실된 데이터를 복구하는 방법을 제공했습니다.
MS-DOS 버전 6.0
버전 6.0에는 DOS의 성능을 향상시키기 위한 많은 새 프로그램이 포함되었습니다. 여기에는 다음이 포함되었습니다.
- 파일을 압축하여 사용 가능한 디스크 공간을 늘린 통합 디스크 압축 프로그램인 Microsoft Double Space
- 장치 드라이버와 메모리 상주 프로그램을 기존 메모리에서 상위 메모리 영역으로 쉽게 이동할 수 있게 해주는 메모리 최적화 프로그램인 Microsoft Mem Maker
- 더 많은 상위 메모리 블록에 대한 액세스를 제공하는 향상된 EMM386.EXE 장치 드라이버
- 프로그램을 로드할 메모리 영역을 지정할 수 있는 향상된 loadhigh 및 devicehigh 명령
- 데이터를 쉽게 백업할 수 있는 프로그램인 Microsoft Backup
- 다른 컴퓨터 바이러스를 식별하고 제거할 수 있는 프로그램인 Microsoft Anti-Virus
- 실수로 파일을 삭제한 경우 하나 또는 세 가지 보호 수준을 선택할 수 있는 향상된 프로그램인 Microsoft Undelete,
- CONFIG.SYS 파일에 둘 이상의 구성을 포함하는 기능. 컴퓨터를 켤 때 시작 명령을 무시하는 기능
- MS-DOS 도움말, MS-DOS 명령에 대한 완전한 온라인 참조
MS-DOS 버전 7.0(Windows 95)
DOS는 DOS 및 Windows 3.x 응용 프로그램과의 역호환성을 위해 Windows 95와 함께 제공됩니다. 다음 표에서 MS – DOS에서 Windows로의 진화를 살펴보겠습니다.
MS – DOS Version |
Notes and Comments |
MS- DOS 1.0 |
First operating system on IBM PC in 1981 |
MS- DOS 1.25 |
Double sided disk support and bug fixes added |
MS- DOS 2.0
|
Introduced with IBM PC/XT in 1983 and having the support of hierarchical file structure and hard disks added. |
MS- DOS 2.01 |
2.0 with international support |
MS- DOS 2.11 |
2.01 with bug fixes |
MS- DOS 2.25 |
Support for Extended Character sets |
MS- DOS 3.0 |
Support for 1.2MB floppy disks and larger hard disks added |
MS- DOS 3.1 |
Support for Microsoft networks added |
MS- DOS 3.2 |
Support for 3.5 inches disks added |
MS- DOS 3.3 |
Generalized code page (font) support |
MS- DOS 4.0 |
Support for logical volumes larger then 32 MB and Visual shell |
Windows 1.0 |
Graphical user interface for MS – DOS |
Windows 2.0 |
Compatibility with OS/2, Presentation Manager |
Windows 95 |
Used Version 4.00.950 |
Windows 95 Se |
Used Version 4.00.1111 |
Windows 98 |
Used Version 4.10.1998 |
Windows 98 Second Edition |
Used Version 4.10.2222 |
Windows Millennium |
Used Version 4.90.3000 |
Windows NT |
Used Version 4.0 |
Windows 2000 |
Used Version 5.00.2195 |
Windows XP |
Used Version 5.1.2600 |
필요한 명령
프로그래밍 및 비프로그래밍 기술로 데이터를 복구하는 동안 유용할 수 있는 몇 가지 중요한 명령을 알아보겠습니다.
ATTRIB
ATTRIB 명령은 파일 및 디렉토리에 할당할 수 있는 읽기 전용, 아카이브, 시스템 및 숨김의 네 가지 속성 중 하나 이상을 표시, 설정 또는 제거하는 데 사용됩니다. 일반적으로 읽기 전용, 숨김 및 시스템 속성을 제거하여 파일을 이동 또는 삭제할 수 있도록 하거나 설정할 수 없도록 설정하는 데 사용됩니다.
구문:
현재 디렉토리에 있는 모든 파일의 속성 설정을 표시하려면:
ATTRIB
디렉토리의 속성을 표시하려면:
ATTRIB directoryname
파일의 속성을 표시하려면:
ATTRIB filename
파일 또는 디렉토리의 속성을 설정하거나 제거하려면:
ATTRIB [ + | - R] [ + | - A] [ + | - S] [ + | - H] [directory|filename] [/S]
+ Sets an attribute, - Clears an attribute.
R |
Read-only file attribute. |
A |
Archive file attribute. |
S |
System file attribute |
H |
Hidden file attribute. |
/S |
Processes files in all directories in the specified path. |
읽기 전용 속성을 사용하면 파일에 액세스할 수 있지만 수정할 수는 없습니다. 시스템 속성은 일반적으로 DOS 또는 Windows가 제대로 로드되는 데 필요한 파일용으로 예약되어 있습니다. Hidden 속성이 설정된 파일 및 디렉토리는 일반적으로 디렉토리 목록이나 파일 열기 대화 상자에 표시되지 않습니다.
폴더를 숨기는 일반적인 이유는 폴더가 시스템이나 프로그램 작동에 중요하고 일상적인 정리 작업에서 삭제하거나 이동해서는 안 되기 때문입니다. Hidden 및 System 폴더에는 종종 읽기 전용 속성이 설정됩니다.
공백으로 구분된 스위치를 결합하여 여러 속성을 설정하거나 지울 수 있습니다. 파일과 디렉토리 모두 ATTRIB를 사용하여 속성을 할당하고 지울 수 있지만 작동 방식에는 차이가 있습니다. 그 중 가장 분명한 것은 와일드카드(? 및 *)를 사용하여 파일 그룹의 속성을 표시하거나 변경할 수 있다는 것입니다. 반면 디렉토리는 전체 이름을 지정해야 합니다. 이 장의 뒷부분에서 와일드카드와 단축키에 대해 자세히 알아볼 것입니다.
파일 속성을 시스템, 숨김 또는 읽기 전용으로 설정하면 DEL, ERASE 또는 MOVE 명령을 사용하여 파일이 삭제되거나 이동되는 것을 방지할 수 있지만 DELTREE 또는 FORMAT으로부터 파일을 보호하지는 않습니다. 디렉토리의 읽기 전용 속성을 설정할 수 있지만 이것은 거의 목적에 도움이 되지 않는 것 같습니다.
첫째, 속성은 디렉토리에만 적용되며 그 안에 있는 파일에는 적용되지 않습니다. 또한 폴더를 읽기 전용으로 설정해도 삭제되지 않지만 Windows 탐색기에서는 폴더가 삭제되거나 이동되기 전에 경고 알림이 표시됩니다.
"readme"라는 파일의 속성을 표시하려면:
ATTRIB 읽어보기
읽기 전용 속성을 "readus.txt" 파일에 할당하려면 다음을 사용하십시오.
ATTRIB readus.txt +R
"data19.txt"에서 시스템 및 숨겨진 속성을 제거하려면:
ATTRIB -S -H 데이터19.txt
디렉토리를 숨기려면 "c:\mynotes"
ATTRIB +H c:\mynotes
C: 디렉토리가 아닌 파일을 숨기려면
속성 +H c:*.*
CD(또는 CHDIR)
지정된 드라이브의 현재 디렉토리를 변경(또는 표시)합니다.
구문:
현재 디렉토리를 표시하려면:
CD [드라이브:]
현재 디렉토리를 변경하려면:
CD 경로
경로 현재 디렉토리를 경로로 변경합니다. 각 드라이브에는 고유한 "현재 디렉토리"가 있습니다. "현재"로 남아 있습니다. 따라서 c: 드라이브의 현재 디렉토리가 변경될 때까지 다른 드라이브의 현재 디렉토리 상태에는 영향을 미치지 않습니다. 다른 드라이브의 현재 디렉토리로 변경하려면 드라이브 문자와 콜론을 입력하기만 하면 됩니다.
현재 드라이브가 c:인 경우 디렉토리 "
c:\windows\java"
CD \windows\java
현재 디렉토리가 이미 "c:\windows"인 경우 필요한 것은 다음과 같습니다.
CD java
현재 디렉토리를 변경하려면 "c:\windows\java" 상위 디렉토리 "c:\windows":
CD..
현재 "c:\windows\java\notes\klip\" 디렉터에 있다고 가정합니다. 이제 Windows 디렉터리로 직접 이동하려면 이전 사례에서 했던 것처럼 두 개의 점(..)을 더 늘리십시오. 이와 같이
CD….
c: 드라이브의 현재 디렉토리가 "c:\windows\notes"인 경우 e: 드라이브의 현재 디렉토리가 "e:\movie"인 경우 "e:\movie"의 모든 파일을 복사합니다. "c\windows\notes"로:
COPY e:*.* c:
"e:\downloads"에서 모든 파일을 복사하려면 c의 루트 디렉토리로:
COPY e:*.* c:\
CHKDSK
CHKDSK는 디스크 상태를 확인하고 일부 디스크 오류를 수정하며 파일 할당 테이블(FAT) 및 디렉토리 구조에서 발견된 오류를 보여주는 상태 보고서를 표시하는 데 사용됩니다. CHKDSK는 디스크 사용량 요약도 표시합니다. 디스크에서 오류가 발견되면 CHKDSK는 경고 메시지를 표시합니다.
구문:
CHKDSK [경로] [/F] [/V]
경로 확인할 드라이브와 디렉터리를 지정합니다.
/F 디스크의 오류를 수정합니다.
/V 디스크에 있는 모든 파일의 전체 경로와 이름을 표시합니다.
SCANDISK는 훨씬 더 광범위한 디스크 문제를 안정적으로 감지하고 수정할 수 있으며 일반적으로 다소 오래된 CHKDSK보다 선호됩니다. /F 스위치(발견된 오류 수정용)는 DOS 및 CHKDSK 자체 이외의 다른 프로그램이 실행되는 동안 사용하면 안 됩니다.
CHKDSK는 SUBST를 사용하여 만든 드라이브에서 사용할 수 없으며 네트워크 드라이브에서도 사용할 수 없습니다. win98에서 CHKDSK는 디스크를 확인하지 않지만 여전히 몇 가지 기본 데이터를 제공합니다.
디스크가 손상되었거나 MBR, DBR, FAT 또는 루트 디렉토리와 같은 부트 섹터에 논리적 오류가 있는 경우 CHKDSK 또는 SCANDISK 또는 기타 디스크 스캔 프로그램으로 디스크를 스캔해서는 안 됩니다. 데이터 정보가 왜곡되어 복구가 어려울 수 있습니다. 이뿐만 아니라 데이터를 완전히 복구하지 못할 수도 있습니다. |
CLS
명령 프롬프트와 커서만 남기고 화면을 지웁니다.
Syntax:
CLS
COMMAND
명령 해석기의 새 복사본을 시작합니다.
구문:
명령 [경로] [장치] [/스위치]
경로 드라이브 및 command.com이 포함된 디렉토리. command.com이 루트 디렉터리에 있지 않은 한 지정해야 합니다.
장치 명령 입력 및 출력에 사용할 장치입니다. 기본적으로 이것은 키보드와 모니터입니다.
/P 새 명령 해석기를 영구적으로 만듭니다.
/E:x 초기 환경 크기[바이트]를 설정합니다. x는 256~32,768바이트 사이에서 설정해야 합니다. 기본값은 256바이트입니다.
/L:y 내부 버퍼 길이 [바이트]. y는 128~1,024바이트 사이에서 설정해야 합니다. 이 스위치는 명령 해석기가 영구적인 경우에만 허용됩니다. /P 스위치도 설정해야 합니다.
/U:z 입력 버퍼 길이 [바이트]. z는 128바이트와 255바이트 사이에서 설정해야 합니다. 기본값은 ? 이 스위치는 명령 해석기가 영구적인 경우에만 허용됩니다. /P 스위치도 설정해야 합니다.
/MSG 모든 오류 메시지를 메모리에 저장합니다. 이 스위치는 명령 해석기가 영구적인 경우에만 허용됩니다. /P 스위치도 설정해야 합니다.
/LOW COMMAND가 메모리 부족 상태로 유지되도록 합니다.
/Y /C 또는 /K로 지정된 일괄 프로그램을 단계별로 실행
/C 명령 명령을 실행하고 종료합니다. 이것은 명령줄의 마지막 스위치여야 합니다.
/K 명령 명령을 실행하고 계속 실행합니다. 이것은 명령줄의 마지막 스위치여야 합니다.
COPY
COPY의 주요 용도는 하나 이상의 파일을 다른 위치에 복사하는 것이지만 파일을 결합(추가 및 연결)하고 파일, 프린터 또는 기타 장치에 직접 입력하는 데에도 사용할 수 있습니다.
구문:
COPY [/A | /B] source [/A | /B] [+ source [/A | /B] [+ ...]]
[destination [/A | /B]] [/V] [/Y | /-Y]
소스 복사할 파일입니다. 이것은 단일 매개변수여야 하지만 와일드카드(* 또는 ?)를 사용하여 지정된 여러 파일을 포함할 수 있습니다. 유효한 장치일 수도 있습니다(예: CON)
like COPY CON NOTES.TXT
이제 텍스트를 쓰거나 복사하고 Ctrl+Z 키를 입력하여 나옵니다.
destination 새 파일의 디렉토리 및/또는 파일 이름. 대상을 지정하지 않으면 원본과 동일한 이름 및 생성 날짜를 사용하여 현재 디렉터리에 원본을 복사합니다. 소스가 현재 디렉토리에 있으면 "파일을 자신에게 복사할 수 없습니다."라는 오류 메시지가 표시됩니다.
file /A COPY가 파일을 ASCII 텍스트 파일로 처리하도록 합니다.
file /B COPY가 파일을 바이너리 파일로 처리하도록 합니다.
/V 새 파일을 읽을 수 있는지 확인합니다.
/Y 파일을 덮어쓰기 전에 경고 메시지가 표시되지 않습니다.
/-Y 경고를 표시하고 확인이 필요합니다.
파일 덮어쓰기.
명령줄에서 사용할 때 대상에 지정된 파일이 지정된 위치에 이미 있는 경우 COPY는 기본적으로 경고 메시지를 표시하고 이전 파일을 덮어쓰기 전에 확인을 요구합니다. 반면 배치 파일에서 COPY를 사용하면 경고 없이 기존 파일을 덮어씁니다.
이 기본 동작은 /Y | /-Y 스위치는 COPYCMD 환경 변수에 있고 /Y | // 명령줄의 Y 스위치.
COPY는 0바이트 길이의 파일을 복사하지 않습니다. 대신 이러한 파일을 삭제합니다. XCOPY를 사용하여 이러한 파일을 복사합니다. 소스 및/또는 대상은 파일이 아니라 적절한 장치(예: CON, COMx 또는 LPTx에서 x는 1,2,3 제외)일 수 있습니다.
컨텍스트에 따라 Copy는 파일을 바이너리 또는 ASCII 텍스트 파일로 취급합니다. 기본적으로:
- 한 위치에서 다른 위치(ASCII 여부)로 파일을 복사할 때 COPY는 바이너리 모드를 가정합니다.
- 파일을 연결할 때 COPY는 ASCII 모드를 가정하고
- 소스 또는 대상이 장치(디스크 제외)인 경우 복사는 ASCII 모드를 가정합니다.
바이너리 모드에서 작동할 때 COPY는 파일 할당 테이블에서 파일의 시작 위치를 결정하고 해당 지점에서 해당 파일에 할당된 바이트 수를 복사합니다.
ASCII 모드에서 데이터는 파일 끝(ASCII 문자 번호 26, Ctrl-Z) 문자에 도달할 때까지 복사됩니다. 이 문자는 복사되지 않지만 COPY는 새 파일을 닫기 전에 EOF 문자를 추가합니다.
이 복잡한 절차를 통해 COPY는 파일을 연결하고 파일이 아닌 입력(예: 키보드)으로 작업할 수 있습니다. 기본 모드가 적절하지 않은 경우에는 필요에 따라 소스 및/또는 대상 파일에 /A 또는 /B 스위치를 추가하여 기본 모드를 무시할 수 있습니다.
"note.txt"를 복사하려면 현재 드라이브 및 디렉토리에서 "mynotes" 디렉토리로:
COPY note.txt c:\mynotes
or
COPY note.txt c:\mynotes\
첫 번째 경우 "mynotes"가 디렉토리가 존재하지 않습니다. "note.txt" "mynotes"라는 파일에 복사됩니다. C 드라이브의 루트 디렉토리에 있습니다. 두 번째 경우에는 "Invalid Directory"가 오류 메시지가 표시됩니다. "mynotes"의 모든 파일을 복사하려면 디렉토리를 "mynotes backup"이라는 디렉토리로 이동합니다. 드라이브 D:
COPY c:\mynotes\*.* d:\mynotes backup\
"note.txt"를 복사하려면 현재 드라이브 및 디렉토리에서 "program note.txt"라고 합니다.
COPY note.txt "program note.txt"
디버그
디버그는 컴퓨터의 일부를 보고 컴퓨터에서 특정 작업을 수행하기 위한 어셈블리 코드를 작성하는 방법입니다. MS-DOS 2.x - 4.x는 DEBUG.COM을 사용했고 MS-DOS 5.x 이상에서는 DEBUG.EXE를 사용했습니다.
DEBUG.EXE는 숙련된 사용자의 손에 단기(RAM) 및 장기(하드/ 플로피/테이프 미디어). 어셈블리 언어 코드를 컴파일(그리고 어느 정도까지는 디컴파일)할 수도 있습니다.
DEBUG는 파일을 바이트 수준에서 보고 수정할 수 있도록 하는 바이트 편집기입니다. "실행 취소"가 없으므로 일반적으로 권장됩니다. 명령이므로 재생하기 전에 백업하십시오. DEBUG 유틸리티를 사용할 때 무엇을 하고 있는지 확인하십시오.
이것은 하드웨어 수준에서 컴퓨터에 액세스하는 데 사용할 수 있는 강력한 프로그래머 도구입니다. 주의하지 않으면 하드디스크가 지워지거나 키보드가 잠기는 등의 손상을 입을 수 있습니다.
구문:
DEBUG [filename]
DEBUG [[drive:] [path] filename [testfile-parameters]]
[drive:][path]filename 테스트할 파일을 지정합니다.
testfile-parameters 테스트하려는 파일에 필요한 명령줄 정보를 지정합니다.
DEBUG 시작 방법
DEBUG는 두 가지 방법 중 하나로 시작할 수 있습니다.
방법 1:
DOS 프롬프트에서 다음을 입력합니다.
DEBUG (return)
DEBUG는 하이픈(-) 프롬프트로 응답합니다. 프롬프트가 나타나면 DEBUG는 많은 한 글자 명령 중 하나를 입력하기를 기다리고 있습니다. 이 방법으로 DEBUG를 시작하면 컴퓨터의 내부 하드웨어에서 작업하고 RAM의 모든 메모리 위치 내용을 볼 수 있습니다. 또한 플로피 또는 하드 디스크의 최대 128개 섹터를 로드하고 내용을 보고 편집하거나 다른 위치로 이동할 수 있습니다.
DEBUG는 16진수의 FFFF 바이트와 동일한 65,535(십진수) 1바이트 위치의 메모리에 작업 영역을 설정합니다. 이 영역의 처음 256(10진수) 또는 100 16진수 바이트는 프로그램의 PSP(프로그램 세그먼트 접두사)라고 하는 것을 위해 따로 설정되며 어떤 식으로든 변경되어서는 안 됩니다. DEBUG를 사용하여 메모리에 섹터나 데이터를 로드할 때마다 오프셋 100에서 시작하는 위치에 배치해야 합니다.
디버그 명령의 예는 다음 줄에 표시됩니다.
DEBUG
L 0100 0 0 80 (return)
이 명령에서 우리는 섹터 0으로 시작하는 A 드라이브의 오프셋 100, 80(Hex) 섹터에서 메모리로 로드하도록 디버그에 지시합니다. 80 Hex 섹터는 128 십진수 섹터와 같으므로 디스크의 각 섹터가 다음을 저장하면 512바이트인 경우 메모리에 로드되는 총 바이트 수는 (512 X 128) 또는 65,540바이트(최대)입니다.
방법 2:
DOS 프롬프트에서 다음을 입력합니다.
DEBUG \path\filename (return)
그런 다음 DEBUG는 명령줄의 경로 및 파일 이름 필드에 지정된 파일과 함께 메모리에 로드하고 파일의 첫 번째 바이트를 작업 영역의 오프셋 100에 놓습니다.
이 방법으로 DEBUG를 시작하면 COM 프로그램이나 ASCII 텍스트 파일을 보거나 편집하거나 이동할 수 있습니다. 이것은 COM 프로그램을 디버그하거나 수정하는 매우 편리한 방법입니다.
MS-DOS는 두 가지 유형의 프로그램만 제어할 수 있으며 EXE 또는 COM 확장자로 끝나야 합니다. 이 두 프로그램 유형의 차이점은 DOS가 프로그램의 유지 관리 부분을 처리하는 방식에 있습니다.
종종 프로그램 세그먼트 접두사(PSP)라고 하는 이 유지 관리 영역은 프로그램에서 따로 설정해야 하는 256바이트 메모리 블록으로, 프로그램이 종료될 때 DOS에서 운영 체제로 제어를 되돌리는 데 필요합니다.
자세한 내용은 생략하고 이 두 가지 유형의 프로그램 간의 주요 차이점을 지적하겠습니다.
COM 확장
COM 프로그램은 크기가 65K 바이트보다 클 수 없는 매우 작고 컴팩트한 프로그램입니다. COM 프로그램의 PSP는 프로그램의 처음 100 Hex(256 Dec) 위치에 있습니다. COM 프로그램의 첫 번째 명령어는 메모리의 오프셋 100에서 시작해야 합니다.
DOS는 COM 프로그램을 위한 PSP를 생성합니다. 이것은 우리가 프로그램을 어셈블할 때 이것에 대해 걱정할 필요가 없다는 것을 의미합니다. 모든 데이터, 코드 및 스택 영역은 메모리의 동일한 세그먼트에 있습니다(1 세그먼트는 64K).
EXE 확장자
EXE 프로그램의 크기는 200바이트에서 640k바이트 사이입니다. PSP는 프로그램이 조립될 때 프로그래머가 설정해야 합니다. 프로그래머는 프로그램에서 첫 번째 명령어가 있는 위치를 결정합니다. EXE 프로그램은 메모리의 데이터, 코드 및 스택 영역에 대해 별도의 세그먼트를 사용합니다.
EXE와 COM 파일 속성을 비교해보면 EXE 프로그램을 어셈블하는 것이 COM 프로그램보다 훨씬 어렵다는 것을 알 수 있습니다. 디버그 유틸리티 프로그램은 디버그에 진입할 때마다 PSP 영역을 설정하여 COM 프로그램에서만 동작하도록 설계되었습니다.
한 번 DEBUG에서 오프셋 100에서 프로그램 어셈블리를 시작할 수 있으며 PSP 또는 데이터, 코드 및 스택이 있는 위치에 관심이 없습니다. 메모리에 로드하기 전에 다른 확장자로 프로그램 이름을 바꾸면 DEBUG가 있는 EXE 프로그램을 볼 수 있습니다.
DEBUG가 시작된 후 ?를 입력하십시오. 디버깅 명령 목록을 표시합니다. DEBUG에서 나가려면 "Q" 입력합니다. DEBUG 루틴을 실행하려면 "G"를 수행해야 합니다. 입력합니다.
예를 들어 보겠습니다.
DEBUG <return>
D40:00 <return>
포트가 없거나 응답하지 않는 포트가 있으면 컴퓨터 포트에 대한 정보가 표시되며 해당 포트의 상태는 00으로 표시됩니다.
Now enter Q to return.
Q <return>
DEBUG가 호출되면 하이픈(-)이 있는 다소 애매한 "DEBUG 프롬프트"가 표시됩니다. 프롬프트에서 다음 "DEBUG 명령&" 유효합니다:
Command |
Parameters |
Action |
? |
|
This list of DEBUG commands. |
A |
[address] |
Assemble |
C |
range address |
Compare |
D |
[start address [end address | L range]] |
Displays a segment of memory. By default start address is offset 100 of the first free segment of memory, or offset 100 of the segment containing a file loaded by DEBUG. The default end address is 017F ( a range of 128 bytes). |
E |
address [list] |
Enter |
F |
range list |
Fill |
G |
[=address] [addresses] |
Go |
H |
value1 value2 |
Hex |
I |
Port |
Input |
L |
- |
Loads a previously "named" (by N command) file into memory where it can be viewed /edited. |
L |
Number |
Used with commands accepting a "range" argument to denote a number of bytes. Typically used in arguments as: start address L number. If number should take end address past the end of the segment, then number is truncated so the end address is the last byte of the segment. |
M |
range address |
Move |
N |
[path] filename [arglist] |
"Names" a file for DEBUG. A file must be "named" before it can be loaded for viewing/editing. |
O |
port byte |
Output |
P |
[=address] [number] |
Proceed |
Q |
|
Exit DEBUG. |
R |
[register] |
Register |
S |
range list |
Search |
T |
[=address] [value] |
Trace |
U |
[range] |
Unassembled |
W |
[address] [drive] [first sector] [number] |
Write |
XA |
[#pages] |
Allocate expanded memory |
XD |
[handle] |
de-allocate expanded memory |
XM |
[Lpage] [Ppage] [handle] |
Map expanded memory pages |
XS |
|
Display expanded memory status |
DEL(또는 지우기)
명명된 파일을 삭제합니다. DEL과 ERASE는 동의어입니다.
구문:
파일을 삭제하려면:
DEL [경로] 파일 이름 [/P]
파일 이름 삭제할 파일의 이름입니다.
/P 각 파일을 삭제하기 전에 강제로 확인합니다.
확인과 함께 디렉토리의 모든 파일을 삭제하려면:
DEL 경로 또는
DEL 경로 \*.*
확인 없이 디렉토리의 모든 파일을 삭제하려면:
DEL 경로 \?*.*
DEL은 삭제할 항목을 지정하는 하나의 매개변수만 허용합니다. 그러나 이 매개변수는 와일드카드를 사용하여 작성하여 여러 파일을 삭제할 수 있습니다. 매개변수가 두 개 이상 감지되면 명령이 중단되고 오류 메시지가 표시됩니다.
DEL은 공백이 있는 긴 파일 이름으로 여러 매개변수로 해석되어 오류가 발생합니다. 긴 파일 이름을 역 쉼표로 공백으로 묶으면 문제가 해결됩니다. 예를 들어 보겠습니다.
D:\>del note 2.txt
Too many parameters - 2.txt
D:\>del "note 2.txt"
D:\>_
DEL은 읽기 전용, 숨김 및/또는 시스템 속성이 설정된 파일을 삭제하지 않습니다. 이러한 파일을 삭제하려면 DELTREE를 사용하거나 ATTRIB 명령으로 필요한 속성을 수정할 수 있습니다.
DELTREE
파일과 디렉터리, 그리고 그 안에 있는 모든 하위 디렉터리와 파일을 삭제합니다.
구문:
디렉토리와 그 안에 포함된 모든 하위 디렉토리 및 파일을 삭제하려면:
DELTREE [/Y] directory
디렉토리 삭제할 디렉토리.
/Y 확인을 위한 프롬프트를 표시하지 않습니다.
삭제.
모든 파일과 하위 디렉토리를 삭제하고 디렉토리 자체는 그대로 두려면:
DELTREE [/Y] directory\*.*
파일을 삭제하려면:
DELTREE [/Y] filename
DELTREE 명령은 파일이 숨김, 시스템 또는 읽기 전용으로 표시되는지 여부에 관계없이 디렉토리 또는 하위 디렉토리에 포함된 모든 파일을 삭제합니다.
DELTREE 명령은 와일드카드를 지원하지만 주의해서 사용해야 합니다. 디렉터리 이름과 파일 이름 모두와 일치하는 와일드카드를 지정하면 디렉터리와 파일이 모두 삭제됩니다.
DELTREE 명령으로 와일드카드를 지정하기 전에 DIR /A 명령을 사용하여 삭제할 파일과 디렉토리를 확인하십시오. 또한 모호한 사양으로 인한 놀라움을 피하기 위해 전체 경로를 지정하는 것이 가장 안전합니다. 몇 가지 예를 살펴보겠습니다.
NOTES 디렉토리의 모든 파일과 하위 디렉토리를 포함하여 C 드라이브의 NOTES 디렉토리를 삭제하려면:
DELTREE c:\notes
NOTES 디렉토리의 모든 파일과 하위 디렉토리를 삭제하고 나중에 사용할 수 있도록 NOTES 디렉토리를 비우고 확인 메시지를 피하려면:
DELTREE /Y c:\notes\*.*
속성을 재설정하지 않고 c:\data 디렉토리에서 읽기 전용 파일인 recover.doc를 삭제하려면:
DELTREE /Y c:\data\recover.doc
DOSKEY
DOSKEY는 이전 명령을 기억하고 매크로를 기록할 수 있어 명령줄을 쉽게 편집할 수 있도록 하여 명령줄에서 작업할 수 있도록 설계된 TSR입니다.
Syntax:
To load DOSKEY:
DOSKEY [/Switches]
Switches |
what it does |
/B:xxx |
Sets the size of the buffer for macros and commands. The minimum value of xxx is 256 and the default is 512 (bytes). If DOSKEY is already running, it must be reloaded (with /R) when changing the buffer size. |
/E:On|Off |
Enables|Disables the display of commands when a macro plays. E(Echo) is On by default. |
/F:filename |
Retrieves filename - a text file containing a list of macros in the form Macroname=Text |
/H |
Displays all commands stored in memory. (This list will not be redirected to a file). |
/I|O |
Specifies whether text is entered in Insert or Overstrike mode by default. In either case the alternative mode can be selected by using <Insert> but the default is reset as soon as <Enter> is used. The default mode is Overstrike. |
/K:xx |
Sets the size of the keyboard type-ahead buffer. The default is 15 (characters). If DOSKEY is already running, it must be reloaded (with /R) when changing the buffer size. |
/L |
Sets the maximum size of the line edit buffer. The default is 128 (characters). |
/M |
Displays a list of all DOSKEY macros currently in the buffer. This list can be redirected to a text file using standard Dos redirection (>) |
/R |
Installs a new instance of DOSKEY. If DOSKEY is already running, the buffer is cleared of both macros and the Command Line history. Note that installing a new instance of DOSKEY does not remove the previous instance. Thus each use of /R takes another 5K of conventional/upper memory. |
Macroname |
The name of the macro. This is a string of one or more characters possibly modified by the Ctrl and/or Alt keys. |
Text |
The text string to be assigned to Macroname. This will typically be one or more DOS commands along with appropriate parameters and/or switches. |
To create a DOSKEY macro:
DOSKEY Macroname=Text
To run a macro:
Macroname
Switches |
what it does |
/B:xxx |
Sets the size of the buffer for macros and commands. The minimum value of xxx is 256 and the default is 512 (bytes). If DOSKEY is already running, it must be reloaded (with /R) when changing the buffer size. |
/E:On|Off |
Enables|Disables the display of commands when a macro plays. E(Echo) is On by default. |
/F:filename |
Retrieves filename - a text file containing a list of macros in the form Macroname=Text |
/H |
Displays all commands stored in memory. (This list will not be redirected to a file). |
/I|O |
Specifies whether text is entered in Insert or Overstrike mode by default. In either case the alternative mode can be selected by using <Insert> but the default is reset as soon as <Enter> is used. The default mode is Overstrike. |
/K:xx |
Sets the size of the keyboard type-ahead buffer. The default is 15 (characters). If DOSKEY is already running, it must be reloaded (with /R) when changing the buffer size. |
/L |
Sets the maximum size of the line edit buffer. The default is 128 (characters). |
/M |
Displays a list of all DOSKEY macros currently in the buffer. This list can be redirected to a text file using standard Dos redirection (>) |
/R |
Installs a new instance of DOSKEY. If DOSKEY is already running, the buffer is cleared of both macros and the Command Line history. Note that installing a new instance of DOSKEY does not remove the previous instance. Thus each use of /R takes another 5K of conventional/upper memory. |
Macroname |
The name of the macro. This is a string of one or more characters possibly modified by the Ctrl and/or Alt keys. |
Text |
The text string to be assigned to Macroname. This will typically be one or more DOS commands along with appropriate parameters and/or switches. |
To create a DOSKEY macro:
DOSKEY Macroname=Text
To run a macro:
Macroname
DOSKEY Commands |
What it does |
Left/Right cursor |
Moves the cursor back/forward one character. |
Ctrl + Left/Right cursor |
Moves the cursor back/forward one word. |
Home/End |
Moves the cursor to beginning/end of line. |
Up/Down cursor |
To scroll up (and back) through the list of stored commands. Each press of the "up" key recalls the previous command and displays it on the command line. |
Page Up/Down |
Recalls the oldest/most recent command in the buffer |
F1 |
Copies the next character from the Template to the Command Line |
F2 + key |
Copies text from the Template up to (but not including) key. |
F3 |
Copies the Template from the present character position to the Command Line. |
F4 + key |
Deletes the characters from the present character position up to (but not including) key. |
F5 |
Copies the current command to the Template and clears the Command Line. |
F6 |
Places an end-of-file character (^Z) at the current position of the Command Line. |
F7 |
Displays a numbered list of the command history. |
Alt-F7 |
Deletes all commands stored in the buffer. |
Chars + F8 |
Entering one or more characters Chars followed by F8 will display the most recent command beginning with Chars. Pressing F8 again will display the next most recent command beginning with Chars, and so on. |
F9 + Command# |
Displays the designated command on the command line. |
Alt-F10 |
Deletes all macro definitions. |
To delete a macro:
DOSKEY Macroname=
DOSKEY Special Characters
매크로에서 다음 특수 문자를 사용하여 명령 작업을 제어할 수 있습니다.
Characters |
What is does |
$G |
Redirects output – equivalent to the redirection symbol > |
$G$G |
Appends output to the end of a file - equivalent to the append symbol >> |
$L |
Redirects input - equivalent to the symbol < |
$B |
Sends macro output to a command - equivalent to the pipe symbol | |
$T |
Separates commands when creating macros or typing commands on the DOSKEY command line |
$$ |
Use for the $ sign |
$1 to $9 |
Represents any command-line parameters that can be specified when the macro is run. Comparable with the %1 to %9 characters in batch programs |
$* |
Represents command-line information that can be specified when macroname is written. $* is similar to the replaceable parameters $n except that everything typed on the command line after macroname is substituted for the $* in the macro. |
DIR
디렉토리의 파일 및 하위 디렉토리 목록을 표시합니다.
구문:
DIR [drive:] [path] [filename] [/Switches]
Switch |
What Is does |
none |
By default, DIR displays:
- a header comprising the disk's volume label and serial number;
- a list of all files and subdirectories in the current directory in the order they are listed in the FAT except those marked 'hidden' and/or 'system'. Along with each file/directory is its size, date/time of last modification, and long file name;
- a footer comprising the total number of files listed, their cumulative size, and the free space (in bytes) remaining on the disk.
|
/A [attributes] |
Displays files with and without specified attributes. Multiple attributes can be specified with no spaces between them.
attributes (Using the "-" as a prefix specifies "not")
D Directories
R Read-only files
H Hidden files
A Files modified since last back-up
S System files |
/O
[sortorder] |
List files in sorted order.
If order of sorting is not specified, directories are listed alphabetically followed by files, also listed alphabetically. Any combination of sorting order keys can be specified and files will be sorted in the order of the keys.
sortorder (Using "-" as a prefix reverses the order)
N By name (alphabetic)
S By size (smallest first)
E By extension (alphabetic)
D By date & time (earliest first)
G Group directories first
A By Last Access Date (earliest first) |
/S |
Displays Files in the specified Directory and all its Subdirectories |
/W |
Wide list format. File and Directory names are listed in 5 columns |
/B |
Bare format. Files and Directories are listed in a single column without header, summary, or any details. |
/L |
Output is in lowercase. |
/P |
Pauses with each screen, full of information. Press any key to see the next screen. |
/V |
Forces to Verbose mode. This displays attributes, date last accessed, and disk space allocated for each file, in addition to the standard information. |
/Z |
Long file names are not displayed in the file listing. |
/4 |
Displays the date as four digits rather than two. |
DIR 명령은 하나의 경로만 매개변수로 허용합니다. 공백이 포함된 긴 파일 및 디렉토리 이름은 역 쉼표로 묶어야 합니다. * 및 ?와 같은 와일드카드를 사용할 수도 있습니다. 파일 및 하위 디렉터리의 하위 집합 목록을 표시합니다.
DIR은 표준 마침표(.) 바로 가기와 함께 사용하여 상위 수준 디렉터리를 표시할 수 있습니다. 루트 디렉터리, 디렉터리 및 파일을 표시하는 데 필요한 것보다 더 많은 마침표를 사용하는 경우
DIR 명령의 출력을 파일이나 다른 명령으로 보내기 위해 리디렉션을 사용할 때 /A:-D를 사용하여 파일만 나열하고 /B를 사용하여 파일 크기, 헤더 및 요약 정보. 또한 DIR 명령의 출력이 파이프를 통해 리디렉션될 때 작업이 완료되면 자동으로 삭제되는 임시 파일이 생성됩니다.
기본적으로 이 임시 파일은 "TEMP" 환경 변수를 지정하지 않거나 찾을 수 없는 경우 현재 드라이브의 현재 디렉토리에 생성됩니다. DIR 명령이 현재 디렉토리도 참조하는 경우 이러한 임시 파일이 선택되어 목록에 포함됩니다.
디스크 복사
DISKCOPY는 플로피 디스크를 복제하는 데 사용됩니다. 대상 디스크의 모든 데이터를 덮어씁니다.
구문:
DISKCOPY 드라이브1: [드라이브2:] [/1] [/V] [/M]
drive1 컴퓨터에 플로피 드라이브가 하나만 있는 경우 복사할 디스크가 들어 있는 드라이브입니다.
drive2 다음과 다른 경우 복사할 디스크가 포함된 드라이브
드라이브1.
/1 디스크의 첫 번째 면만 복사합니다.
/V 정보가 올바르게 복사되었는지 확인합니다.
/M 메모리만 사용하여 다중 패스 복사를 강제 실행합니다.
DISKCOPY는 원본 디스크를 대상 디스크에 바이트 단위로 복사하여 표준 플로피 디스크를 복제하도록 설계되었습니다. DISKCOPY는 하드 드라이브, CD, 네트워크 드라이브 또는 Zip, Jazz 등 유형 드라이브에서 작동하지 않습니다. 또한 원본 및 대상 디스크의 유형, 크기 및 용량이 같아야 합니다. 그렇지 않은 경우 오류 메시지가 표시됩니다.
수정
간단한 전체 화면 DOSased ASCII 텍스트 편집기입니다.
구문
편집 [/B] [/H] [/R] [/S] [/nnn] [파일 이름]
/B 흑백 모드를 강제 실행합니다.
/H 가능한 최대 라인 수를 표시합니다.
하드웨어.
/R 읽기 전용 모드에서 파일을 로드합니다.
/S 짧은 파일 이름을 강제로 사용합니다.
nnn 이진 파일을 로드하여 줄을 nnn자 너비로 줄바꿈합니다.
filename(s) 로드할 초기 파일을 지정합니다. 와일드카드도 사용할 수 있습니다.
단축키 목록을 보려면 "도움말" 에디터 메뉴.
나가기
Windows 환경의 DOS의 경우 EXIT 명령을 사용하여 DOS 쉘을 종료합니다. 그렇지 않으면 일반적으로 말하면 MS-DOS 명령 인터프리터(COMMAND.COM)를 종료하고 명령 인터프리터가 있는 경우 명령 인터프리터를 시작한 프로그램으로 돌아갑니다. 존재합니다.
구문
나가기
FC
두 파일 또는 파일 세트를 비교하고 차이점을 표시합니다.
구문:
FC [/Switches] file1 file2
Switch |
What It does |
/B |
Performs a binary comparison.
The two files are compared byte by byte and there is no attempt to resynchronize the files after finding a mismatch. This is the default mode for comparing files when file1 has an extension of .EXE, .COM, .SYS, .OBJ, .LIB and .BIN or similar to it. |
/L |
Compares files as ASCII.
The two files are compared line by line and FC attempts to resynchronize the files after finding a mismatch. This is the default mode for comparing files when file1 does not have an extension of .EXE, .COM, .SYS, .OBJ, .LIB and .BIN or similar to it. |
/LBn |
Sets the number of lines for the internal line buffer.
If the files being compared have more than this number of consecutive differing lines, FC cancels the comparison. Default value of n is 100 |
/nn |
The number of consecutive lines that must match before the files are declared resynchronized. If the number of matching lines in the files is less than this number, the matching lines are displayed as differences. Default value of nn: 2. |
/N |
Displays the line numbers on an ASCII comparison. |
/A |
Abbreviates the output of an ASCII comparison. Only the first and last line for each set of differences is displayed as opposed to the default of every different line. |
/C |
Disregards the case of letters. |
/T |
Does not expand tabs to spaces.
By default, tabs are treated as spaces with 1 tab = 8 spaces. |
/W |
Compresses tabs and multiple spaces to a single space for the comparison. |
file1에 와일드카드가 포함되어 있으면 적용 가능한 모든 파일이 file2와 비교됩니다. file2에도 와일드카드가 포함되어 있으면 해당 file1과 비교됩니다. 대부분의 경우 이진 파일을 비교하여 동일한지 여부를 확인합니다. 두 바이너리 파일이 동일한지 간단히 확인하려면 출력을 최소로 줄이기 위해 /LB1 스위치를 사용하여 ASCII 파일로 비교하는 것이 가장 빠른 경우가 많습니다.
처리 시간의 상당한 차이의 예를 살펴보겠습니다. 다음 예제를 시도하면 시간 절약 및 타자 방식에서 FC를 사용하는 방법을 이해할 수 있습니다.
FC c:\windows\command\xcopy.exe c:\windows\command\attrib.exe
FC c:\windows\command\xcopy.exe c:\windows\command\attrib.exe /L
FC c:\windows\command\xcopy.exe c:\windows\command\attrib.exe /L /LB1
FDISK
FDISK는 하드 디스크의 파티션에 대한 정보를 구성 및/또는 표시하는 데 사용되는 메뉴 구동 유틸리티입니다. FDISK 환경에서 무엇을 하고 있는지 알아야 합니다. 그렇지 않으면 파티션 정보가 삭제되거나 변경될 수 있으며 파티션, 즉 데이터가 손실될 수 있습니다.
DOS에서 하드 디스크를 인식하려면 먼저 MBR(마스터 부트 레코드)을 설정해야 합니다. FDISK는 하드 드라이브 파티션의 크기와 특성을 정의하여 MBR을 만드는 데 사용되는 MS-DOS 유틸리티입니다. MBR은 디스크 영역을 다음과 같이 정의합니다.
확장 파티션은 하나 이상의 논리 DOS 드라이브를 포함하도록 지정되어야 합니다. 파티션을 제거하면 파티션에 있는 모든 것이 파괴되거나 최소한 데이터를 복구하기가 매우 어려워집니다. 이 책의 복구 프로그래밍 섹션에서 Fdisk에 대해 자세히 알아볼 것입니다.
찾기
FIND 명령은 파일에서 텍스트 문자열을 검색하는 데 사용됩니다. 지정된 파일을 검색한 후 FIND는 문자열이 포함된 텍스트 행을 표시합니다.
구문:
FIND [/V] [/C] [/N] [/I] "string" "filename1" "filename2" "filename ..."
Switch |
What It Does |
/V |
Displays all lines NOT containing the specified string. |
/C |
Displays only a count of lines containing the string. If used with /V, FIND displays a count of the lines that do not contain the specified string. |
/N |
Displays line numbers with the lines. If /C and /N are used together, /N is ignored. |
/I |
Ignores the case of characters in string. By default FIND is case sensitive and searches for an exact character match. |
string |
The text string to be found. String must be in inverted commas. |
filename |
The file(s) to be searched. If filename does not contain spaces, it does not need to be enclosed in inverted commas. |
파일 이름이 지정되지 않은 경우 FIND는 일반적으로 키보드, 파이프 또는 리디렉션된 파일과 같은 표준 소스에서 텍스트 입력을 검색합니다. 파일 이름에 와일드카드를 사용할 수 없습니다. 또한 역 쉼표는 문자열을 구분하는 데 사용되므로 문자열 내에서 검색 패턴의 일부로 사용할 수 없습니다.
문자열 내에 역 쉼표를 포함하려면 "특수 문자"를 사용해야 합니다. FIND가 검색 문자열에서 역 쉼표로 해석하는 이중 역 쉼표("") 중 하나입니다. 몇 가지 예를 살펴보겠습니다.
"NOTES.TXT" 파일의 모든 라인을 표시하려면 "homework" 문자열을 포함하는:
"숙제" 찾기 메모.txt
문자열에 역 쉼표가 포함된 경우 다음을 두 배로 늘려야 합니다.
FIND ""의 결과 B.E. 마지막 해'' 표시되지 않았습니다.' 결과.doc
형식
MS-DOS에서 사용할 디스크를 포맷합니다. 디스크에 저장된 데이터는 포맷 후에 지워진다는 것을 항상 기억하십시오. format 명령을 사용하기 전에 주의하고 확인하고 FORMAT 명령에 입력하는 드라이브 문자를 항상 확인하십시오.
구문:
포맷 드라이브: [/스위치]
Switch |
What It does |
/V[:label] |
Specifies a volume label. If the /V switch is omitted, or label is not specified, a prompt for a volume label is displayed after formatting is completed. If no volume label is required, the prompt can be avoided by specifying: /V:""
If a label is specified and more than one disk is formatted in a session, all of the disks will be given the same volume label. |
/Q |
Forces the Quick format of a previously formatted disk. The file allocation table (FAT) and root directory of the disk is deleted but it is not scanned for bad areas. |
/S |
Copies system files to the formatted disk to make it a boot disk. |
/B |
Allocates space on the formatted disk for system files. |
/F:size |
Formats a disk to a capacity other than that for which the drive was designed. Size can be: 360, 720, 1.2, 1.44, and 2.88. |
/T:tracks |
Specifies the number of tracks per disk side. |
/N:sectors |
Specifies the number of sectors per track. |
/1 |
Formats a single side of a floppy disk. |
/4 |
Formats a 5.25-inch 360K floppy disk in a high-density drive. |
/8 |
Formats eight sectors per track |
/C |
Tests clusters that are currently marked "bad." By default, if a disk contains clusters that have been marked as "bad", FORMAT does not retest the clusters; it simply leaves them marked "bad". |
기본적으로 /Q 스위치가 사용되지 않는 한; 디스크의 각 섹터는 섹터가 데이터를 제대로 저장할 수 있는지 확인하기 위해 포맷 프로세스 중에 확인됩니다.
불량 섹터가 발견되면 표시되어 사용되지 않습니다. 포맷이 완료되면 총 디스크 공간, 결함으로 표시된 공간, 사용된 공간 및 파일에 사용할 수 있는 공간을 보여주는 메시지가 표시됩니다. FORMAT은 SUBST 명령을 사용하여 만든 가상 드라이브에서 사용할 수 없습니다.
플로피를 다시 포맷하는 빠른 방법은 다음과 같습니다.
렌 /? | 형식 /q/v:"" > 무효
렌 /? 부품 피드는 중복 재료의 로드와 함께 "엔터" 다음에 "n, 엔터"를 입력합니다. FORMAT의 프롬프트에 대한 응답으로. >nul은 두 명령의 다소 지저분한 혼합 출력의 표시를 방지합니다.
라벨
LABEL 명령은 디스크의 볼륨 레이블을 생성, 변경 또는 삭제하는 데 사용됩니다. 디스크의 볼륨 레이블은 볼륨 일련 번호(있는 경우)와 함께 디렉토리 목록의 일부로 표시됩니다.
구문:
LABEL [드라이브:] [레이블]
드라이브: 이름을 지정할 디스크의 위치입니다.
레이블 새 볼륨 레이블입니다.
없음 현재 디스크 레이블이 있는 경우 표시합니다. 새 레이블을 입력하거나 기존 레이블을 삭제하라는 메시지가 표시됩니다.
MD(또는 MKDIR)
디렉토리를 생성합니다. MD와 MKDIR은 같은 작업을 수행하는 동의어입니다.
구문:
MD [경로] 디렉토리 이름
더
MORE 명령은 파이프 또는 리디렉션된 파일에서 표준 입력을 읽고 한 번에 한 화면의 정보를 표시합니다. 이 명령은 일반적으로 긴 파일, 디렉토리 출력 등을 보는 데 사용됩니다.
구문:
MORE [path] filename
MORE < [path] filename
command | MORE [path] [filename]
command a command whose output is to be displayed.
한 번에 한 화면을 표시할 파일 이름 파일
추가 파일 이름 및 추가 < 파일 이름은 동의어이며 TYPE 파일 이름 | 더. 이 모든 경우에 파일 이름은 한 번에 한 화면에 표시됩니다. "Enter"를 누르면 다음 화면을 표시합니다. 디스플레이는 Ctrl-C를 눌러 언제든지 종료할 수 있습니다. MORE는 화면에 맞게 텍스트를 자동으로 줄바꿈합니다.
BIGFILE.TXT라는 이름의 큰 텍스트 파일의 예를 살펴보겠습니다. 이제 다음 세 가지 명령이 동일한 작업을 수행합니다.
TYPE bigfile.txt | MORE
MORE bigfile.txt
MORE < bigfile.txt
이동
파일과 디렉토리를 동일하거나 다른 드라이브의 한 위치에서 다른 위치로 이동합니다.
구문:
이동 [/Y | /-Y] [경로] 파일 이름 대상
/Y 디렉토리 생성 또는 대상 덮어쓰기를 확인하는 메시지를 억제합니다. 이것은 배치 파일에서 MOVE를 사용할 때의 기본값입니다.
/-Y 디렉터리 생성 또는 대상 덮어쓰기를 확인하는 프롬프트를 강제 실행합니다. 명령줄에서 MOVE를 사용할 때의 기본값입니다.
이동할 파일이 두 개 이상 나열되는 경우 대상 경로는 디렉터리여야 하며 파일은 원래 이름을 유지합니다.
RD(또는 RMDIR)
빈 디렉토리를 제거(삭제)합니다. RD와 RMDIR은 동의어이며 동일한 작업을 수행합니다.
구문:
RD [경로] 디렉토리 이름
경로의 첫 번째 디렉터리 이름 앞에 백슬래시( \ )가 있으면 해당 디렉터리는 현재 드라이브의 루트 디렉터리 하위 디렉터리로 간주됩니다. 경로의 첫 번째 디렉토리 이름 앞에 백슬래시가 없으면 해당 디렉토리는 현재 디렉토리의 하위 디렉토리로 간주됩니다.
또한 RD는 빈 디렉토리만 삭제합니다. 파일 및/또는 하위 디렉터리가 포함된 디렉터리에서 RD를 사용하는 경우 컴퓨터에 오류 메시지가 표시됩니다.
스캔
SCANDISK 디스크 복구 프로그램을 실행합니다.
구문
현재 드라이브를 확인하고 복구하려면:
스캔디스크
디스크가 손상되었거나 MBR, DBR, FAT 또는 루트 디렉토리와 같은 부트 섹터에 논리적 오류가 있는 경우 CHKDSK 또는 SCANDISK 또는 기타 디스크 스캔 프로그램으로 디스크를 스캔해서는 안 됩니다. 데이터 정보가 왜곡되어 복구가 어려울 수 있습니다. 이뿐만 아니라 데이터를 완전히 복구하지 못할 수도 있습니다. |
일반적으로 Scandisk의 DOS 버전은 Windows가 실행되는 동안 실행되지 않습니다. 오류를 알리는 대신 Windows 버전의 Scandisk로 제어를 자동으로 이전합니다.
유형
TYPE 명령은 ASCII 텍스트 파일의 내용을 화면에 표시하는 데 사용됩니다.
구문:
유형 파일 이름
텍스트 파일을 한 번에 한 화면씩 표시하려면 TYPE 명령의 출력을 MORE로 파이프하십시오. 몇 가지 예를 살펴보겠습니다.
ROMI.TXT의 내용을 표시하려면:
유형 romi.txt
파일이 너무 길어서 한 화면에 표시되지 않는 경우:
유형 romi.txt | 더
XCOPY
이 명령어는 중요한 데이터를 백업하고 싶거나 전체 드라이브의 이미지를 Copy 파일과 디렉토리 트리로 만들고 싶을 때 가장 중요한 명령어 중 하나입니다.
XCOPY는 와일드카드를 사용할 때 복사되는 항목을 정확하게 제어할 수 있는 스위치가 더 많다는 점을 제외하고는 COPY 명령과 유사합니다.
구문:
XCOPY 소스 [대상] [/스위치]
source 복사할 파일 및 디렉터리입니다. 와일드카드(* 또는 ?)를 사용할 수 있습니다.
대상 새 파일의 경로 및/또는 이름. 대상을 생략하면 파일이 현재 디렉토리에 복사됩니다. 대상이 존재하지 않는 디렉토리를 참조하는 경우 디렉토리가 생성됩니다. 기본적으로 XCOPY는 소스 디렉토리의 파일로 작업을 제한합니다.
Switch |
What it does |
/E |
Copies the complete subdirectory structure of source and all files therein. |
/S |
Copies the complete subdirectory structure of source and all files therein but does not copy empty subdirectories. |
/T |
Copies the subdirectory structure of source but does not copy any files and does not copy empty subdirectories. To include empty subdirectories, use with the /E switch. |
/A |
Only copies files with the archive attribute set. |
/M |
Only copies files with the archive attribute set, turning off the archive attribute of the source files. |
/H |
Includes files with hidden and system attributes set. |
/K |
Copies files without resetting the read-only attribute, if set. |
/R |
Overwrites read-only files. |
/U |
Only copies files in source that already exist in destination. Can be used with /D to update files with more recent versions. |
/D:date |
Only copies files with a 'last modified date' the same as, or later than, date. If date is not specified, all files are copied except for same-named files in the destination directory that have a more recent 'last modified date' than the one in source. |
/I |
Forces destination to be treated as a directory. The file/directory prompt is suppressed. |
/Y |
Overwrites existing files without prompting. |
/-Y |
Prompts before overwriting existing files. |
/W |
Displays a prompt before starting to copy files. |
/P |
Prompts for confirmation before creating each destination file. |
/F |
Displays full source and destination file names while copying. |
/Q |
Does not display file names or any other messages while copying. |
/C |
Continues copying even if errors occur. |
/L |
Displays files to be copied but does not actually copy them. |
/N |
Copy using the generated short names. This is necessary when copying from a VFAT volume to a FAT volume. |
/V |
Verifies that new files are readable. |
기본적으로 XCOPY는 시스템 또는 숨김 속성이 설정되어 있는 파일을 복사하지 않으며 읽기 전용 파일의 복사본에도 읽기 전용 속성이 설정되어 있지 않으며 복사된 모든 파일에는 아카이브 속성이 설정되어 있습니다. 기본적으로 XCOPY는 대상의 파일을 동일한 이름의 소스에 있는 파일로 덮어쓰기 전에 프롬프트를 표시합니다.
XCOPY는 대상이 디렉터리인지 파일인지 모호한 경우 지침을 묻는 메시지도 표시합니다. 대상이 기존 디렉토리를 참조하지 않거나 "\"로 끝나는 경우 모호성이 나타납니다. 예를 들어 name.ext의 대상은 파일이나 디렉토리가 될 수 있습니다. 다음 예를 통해 더 잘 배워봅시다.
Notes 디렉토리의 모든 파일과 하위 디렉토리를 a 드라이브의 디스크로 복사하려면:
xcopy c:\notes a: /s
or
xcopy c:\notes\*.* a: /s
2002년 12월 9일 이후 생성 또는 수정된 notes 디렉토리의 모든 파일 및 하위 디렉토리를 a 드라이브의 디스크로 복사하려면:
xcopy c:\notes a: /s /d:9/12/02
"드라이브 이미지" 만들기
전체 드라이브를 다른 드라이브에 백업하거나 "운영 체제 및 기타 설치된 소프트웨어 포함" 드라이브 데이터의 이미지를 다른 하드 디스크에 만들려면 다음을 시도하십시오.
C:\> Xcopy * D: \I\E\C\H
여기 D: 는 다른 하드 디스크의 활성 파티션이어야 합니다. 이렇게 하면 소스 드라이브의 전체 데이터(설치된 운영 체제, 소프트웨어, 문서 등 포함)가 이미지로 대상 드라이브에 복사됩니다.
이후 대상 드라이브로 컴퓨터를 부팅하면 소스 드라이브가 작동하던 것과 동일하게 작동하고 이전에 사용했던 모든 데이터가 표시됩니다. 소스 드라이브에 있습니다.
사양 바로 가기, 와일드카드 및 리디렉션
바로가기
많은 DOS 명령은 디렉토리 사이를 이동할 때 특정 단축키를 인식합니다. 이들 중 가장 잘 알려진 것은:
Shortcut |
Why to use it |
. |
to refer to the current directory |
.. |
to refer to the parent directory |
\ |
to refer to the root directory of the current drive. |
drive: |
to refer to the current directory on drive |
예제의 도움으로 그것을 이해하려고 노력합시다. c: 드라이브의 현재 디렉토리가 c:\windows\java\notes이면 a:\> 프롬프트는 c:\windows\java\notes에 있는 파일을 나열합니다.
- 현재 드라이브 및 디렉터리가 c:\data\docs\letters인 경우:
- 현재 드라이브 및 디렉터리가 c:\이면 다음을 수행합니다.
와일드카드
ATTRIB, COPY, DEL, DELTREE 등과 같은 많은 DOS 명령은 "와일드카드" 사용을 허용합니다. (* 그리고 ?). 일반적으로 *는 여러 문자를 나타내고 ? 파일 또는 디렉토리 이름의 단일 문자를 나타냅니다.
이러한 문자를 파일 이름에 사용할 수 없는 이유입니다. 이러한 특수 문자는 / \ : * ? < > " | 파일 이름에 삽입하려고 하면 안 됩니다. 다음 표는 와일드카드 사용을 보여줍니다.
Wildcard |
What it does |
*.* |
All files with all extensions. |
*data*.* |
All files with "data" anywhere in its name. |
*array.* |
All files with names ending with "array" |
note?.cpp |
All files named "note" plus one character and with .CPP extensions. This file may be note1.cpp, but not note.cpp. |
?t*.* |
All files with an "t" as second letter in their names |
모든 명령이 와일드카드를 정확히 같은 방식으로 처리하는 것은 아닙니다. 예를 들어 DIR * 및 DIR *.*은 동의어로 간주되지만 DEL *은 확장자가 없는 파일만 삭제합니다.
역 쉼표(" ")로 묶인 공백은 EDIT 및 DEL에 의해 유효한 파일 사양으로 허용되지만 다소 다른 방식입니다.
EDIT는 현재 디렉토리의 이름을 사용하여 파일을 엽니다. 따라서 현재 디렉토리가 D:\windows\java\notes인 경우 " " 해당 디렉토리에 "notes"라는 파일이 생성됩니다.
DEL은 " " *.*로 저장되며 디렉토리의 모든 파일을 삭제하기 전에 확인 메시지가 표시됩니다. EDIT와 마찬가지로 역 쉼표 사이의 공백 수는 중요하지 않은 것처럼 보이지만 공백이 없으면 필수 매개 변수가 누락되었다는 오류 메시지가 표시됩니다.
EDIT와 달리 경로를 포함할 수 있으며 포함된 경우 역 쉼표 사이에 공백이 필요하지 않습니다. 즉, 현재 디렉토리의 모든 파일을 삭제하려면:
DEL ./"" 작동하지만 DEL " 오류 메시지를 표시합니다.
COPY는 " " *.*로, DEL과 마찬가지로 경로를 허용합니다. DEL과 달리 경로가 포함된 경우에도 역 쉼표 사이에는 항상 공백이 있어야 합니다.
리디렉션
많은 DOS 명령은 화면에 출력을 보내거나 사용자의 입력을 요구합니다. 리디렉션은 명령의 출력이 프린터나 파일과 같은 다른 장치나 다른 프로그램이나 명령에 공급될 수 있는 메커니즘입니다.
4가지 리디렉션 기능이 있습니다.
> |
Redirect output |
>> |
Append |
< |
Redirect input |
| |
Pipe |
>
"표준 출력 장치"에서 명령의 출력을 리디렉션합니다. (일반적으로 모니터) 다른 장치(예: 프린터) 또는 파일로.
구문:
출력을 기기로 리디렉션하려면:
명령 > 기기
출력을 파일로 리디렉션하려면:
명령 > 파일 이름
허용되는 장치 이름은 CON(모니터), PRN(LPT1 - 프린터로 가정), LPT1 - 3(병렬 포트 - 일반적으로 프린터에 연결됨), COM 1 - 4(직렬 포트) 및 NUL( 전자 무효).
인식된 장치 이외의 항목이 지정되면 파일 이름으로 간주됩니다. 지정된 파일 이름을 가진 파일이 이미 존재하는 경우 경고 없이 덮어씁니다. 이해를 돕기 위해 몇 가지 예를 살펴보겠습니다.
이 리디렉션 기능의 가장 일반적인 용도는 디렉터리 목록을 프린터로 보내거나 파일로 저장하는 것입니다. Windows 디렉토리에 있는 모든 파일의 정렬된 디렉토리 목록을 인쇄하려면:
디렉토리 c:\windows /o/a > PRN
동일한 디렉토리의 디렉토리 목록이 포함된 파일을 만들려면:
디렉터리 c:\windows /o/a > d:\windows.txt
>>
명령의 출력을 지정된 파일에 추가합니다.
구문:
명령어 >> 파일 이름
Filename이 존재하지 않으면 생성됩니다. Filename이 존재하는 경우 > 원본 내용을 덮어쓰는 기능입니다. 예를 들어 더 잘 이해합시다.
c:\windows\system 디렉토리에 있는 파일의 디렉토리 목록을 이전에 생성된 디렉토리에 추가하려면:
디렉터리 c:\windows\system /o/a >> d:\windows.txt
<
기본값이 아닌 소스에서 명령에 대한 입력을 지시합니다. 기본 소스는 일반적으로 키보드입니다.
구문:
명령어 < 데이터 소스
일반적으로 배치 프로그래밍에 사용됩니다. 예를 들어 이해해보자. DEBUG 명령의 다음 절차는 MBR의 백업을 만드는 데 사용됩니다. 여기서 MBR.BIN은 이 실행 후에 생성된 백업 파일의 이름입니다.
debug mbr.bin
A
MOV DX, 6000
MOV ES, DX
XOR BX, BX
MOV DX, 0080
MOV CX, 0001
MOV AX, 0201
INT 13
INT 20
<Enter>(type nothing)
G
R CX
200
W 6000:0000
Q
이를 위해 배치 파일을 사용하여 두 개의 배치 파일을 만듭니다. 하나는 DEBUG 명령을 시작하는 명령 명령을 포함하고 다른 하나는 DEBUG 명령에 입력으로 제공될 다른 명령을 저장합니다. 이 파일은 첫 번째 파일의 데이터 소스가 됩니다. 방법을 알아보겠습니다.
C:\ mbr.bat
이제 이 MBR.BAT에 무엇이 들어 있는지 살펴보겠습니다.
MBR.BAT |
DEBUG mbr.bin < ttsource.bat |
그리고 분명히 TTSOURCE.BAT라는 두 번째 파일은 이에 대한 데이터 소스로 작동하며 다음 지침이 포함됩니다.
TTSOURCE.BAT |
A |
MOV DX, 6000 |
MOV ES, DX |
XOR BX, BX |
MOV DX, 0080 |
MOV CX, 0001 |
MOV AX, 0201 |
INT 13 |
INT 20 |
<enter> (Type Nothing) |
G |
R CX |
200 |
W 6000:0000 |
Q |
|
파이프는 프로그램이나 명령의 출력을 두 번째 프로그램이나 명령으로 리디렉션합니다.
구문:
명령1 | 명령2
긴 텍스트 파일을 입력하는 예를 살펴보겠습니다.
type file.txt |더