章节 – 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 KB 内存中。
此后不久,在 1982 年,MS-DOS 版本 1.1 发布并使用双面 320kb 软盘。 IBM 销售的 DOS 版本称为 IBM-DOS 或 PC-DOS。
MS-DOS 2.0 版
当 IBM 开始开发 10 兆字节的硬盘时,微软开始着手开发 DOS 2.0 版,旨在支持硬盘。到目前为止,DOS 1.0 与它的传统保持一致,是为软盘环境设计的。 DOS 1.0 的主要限制之一是它的目录被限制为最多 64 个文件。
MS-DOS 2.0 版的设计目的是包含一个分层设计的文件系统。分层文件系统很重要,因为任何目录都可以包含文件和其他子目录。分层文件系统已经在 UNIX 操作系统中使用,它被用作 MS-DOS/IBM-DOS 操作系统的开发平台。实际上,MS-DOS 的一些基本概念与 UNIX 中的对应概念相似。
MS-DOS 版本 3.0 到 5.0
3.0 版于 1984 年 8 月发布,以支持 IBM PC/AT。 3.1 版于 1984 年 11 月发布,包含网络支持。 1986 年 1 月的 3.2 版支持 3.5 英寸磁盘。 1987 年,IBM 3.3 版紧随其后,其主要目的是支持 IBM PS/2 系列计算机。
MS-DOS 3.3 版添加了许多新功能和命令。 Compaq 3.31 版的 DOS 允许硬盘分区大于 32 兆字节。
MS-DOS 4.01 版也可以读取大于 32 兆字节的分区。最初作为 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 备份,一个可让您轻松备份数据的程序
- Microsoft Anti-Virus,一个可以识别和删除不同计算机病毒的程序
- Microsoft Undelete,一个增强的程序,让您可以选择一个或三个保护级别,以防您意外删除文件,
- 在 CONFIG.SYS 文件中包含多个配置的能力。打开计算机时绕过启动命令的能力
- MS-DOS 帮助,MS-DOS 命令的完整在线参考
MS-DOS 版本 7.0 (Windows 95)
DOS 随 Windows 95 一起提供,以便向后兼容 DOS 和 Windows 3.x 应用程序。让我们看看下表中 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 [ + | - 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. |
Read-Only 属性允许访问但不修改文件。 System 属性通常保留给 DOS 或 Windows 正确加载所需的文件。具有隐藏属性集的文件和目录通常不会显示在目录列表或打开文件对话框中。
隐藏文件夹的常见原因是因为它们对系统或程序运行很重要,不应在随意的整理操作中删除或移动。隐藏文件夹和系统文件夹通常也会设置只读属性。
多个属性可以通过组合开关设置或清除,以空格分隔。尽管文件和目录都可以使用 ATTRIB 分配和清除属性,但它们的行为方式存在差异 - 其中最明显的是通配符(?和 *)可用于显示或更改一组文件的属性而目录必须完整命名。我们将在本章后面详细了解通配符和快捷方式。
将文件属性设置为 System、Hidden 或 Read-Only,将防止使用 DEL、ERASE 或 MOVE 命令删除或移动文件,但不会保护文件免受 DELTREE 或 FORMAT 影响。虽然可以设置目录的只读属性,但这似乎没什么用。
首先,该属性仅适用于目录,而不适用于其中的文件。将文件夹设置为只读也不会阻止它被删除,但在 Windows 资源管理器中,它会导致在删除或移动文件夹之前显示警告通知。
显示名为“readme”的文件的属性:
ATTRIB readme
要将只读属性分配给文件“readus.txt”,请使用:
ATTRIB readus.txt +R
要从“data19.txt”中删除系统和隐藏属性:
ATTRIB -S -H data19.txt
隐藏目录“c:\mynotes”
ATTRIB +H c:\mynotes
要隐藏文件,但不隐藏 C 中的目录:
ATTRIB +H c:*.*
CD (or CHDIR)
更改(或显示)指定驱动器上的当前目录。
语法:
显示当前目录:
CD [drive:]
要更改当前目录:
CD path
路径 将当前目录更改为路径。每个驱动器都有自己的“当前目录”。仍然是“当前的”直到它被改变,从而改变驱动器 c: 的当前目录不会影响任何其他驱动器的当前目录状态。要切换到不同驱动器上的当前目录,只需输入驱动器号和冒号即可。
如果当前驱动器是c:,则进入目录"
c:\windows\java"
CD \windows\java
如果当前目录已经是“c:\windows”,那么只需:
CD java
改变当前目录“c:\windows\java”到父目录“c:\windows”:
CD..
假设你当前在director“c:\windows\java\notes\klip\”,现在如果你想直接跳转到windows目录,只需增加我们在上一个案例中做的两个点(..),像这样
CD….
如果 c: 驱动器上的当前目录是c:\windows\notes" and the current directory on the e: drive is "e:\movie", then to copy all files from "e:\movie" to "c\windows\notes":
COPY e:*.* c:
从“e:\downloads”复制所有文件到c的根目录:
COPY e:*.* c:\
CHKDSK
CHKDSK 用于检查磁盘的状态,修复一些磁盘错误,并显示状态报告,显示在文件分配表 (FAT) 和目录结构中发现的任何错误。 CHKDSK 还显示磁盘使用情况的摘要。如果在磁盘上发现错误,CHKDSK 会显示一条警告消息。
语法:
CHKDSK [path] [/F] [/V]
Path 指定要检查的驱动器和目录。
/F 修复磁盘上的错误。
/V 显示磁盘上每个文件的完整路径和名称
SCANDISK 可以可靠地检测和修复更广泛的磁盘问题,并且通常比有些过时的 CHKDSK 更受欢迎。当除 DOS 和 CHKDSK 本身之外的任何程序正在运行时,不应使用 /F 开关(用于修复发现的任何错误)。
CHKDSK 不能用于使用 SUBST 创建的驱动器,也不能用于网络驱动器。在win98中,CHKDSK不检查磁盘,但仍提供一些基本数据
如果您的磁盘崩溃或引导扇区(如 MBR、DBR、FAT 或根目录已损坏)中存在任何逻辑错误,则不应使用 CHKDSK 或 SCANDISK 或任何其他磁盘扫描程序扫描磁盘。它可能会使您的数据信息失真并且难以恢复。不仅如此,您可能无法完全恢复数据。 |
CLS
清除屏幕,只留下命令提示符和光标。
句法:
CLS
COMMAND
启动命令解释器的新副本。
语法:
命令 [路径] [设备] [/Switches]
路径 包含 command.com 的驱动器和目录。除非 command.com 位于根目录中,否则必须指定此项。
Device 用于命令输入和输出的设备。默认情况下这是键盘和显示器
/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 command 执行命令并退出。这必须是命令行上的最后一个开关。
/K command 执行命令并继续运行。这必须是命令行上的最后一个开关。
复制
COPY 的主要用途是将一个或多个文件复制到另一个位置,但它也可用于组合(附加和连接)文件并直接键入文件、打印机或其他设备。
语法:
COPY [/A | /B] source [/A | /B] [+ source [/A | /B] [+ ...]]
[destination [/A | /B]] [/V] [/Y | /-Y]
source 要复制的文件。尽管这必须是单个参数,但它可能包含使用通配符(* 或?)指定的多个文件。它也可能是一个有效的设备(例如 CON)
喜欢 COPY CON NOTES.TXT
现在写入或复制文本,然后按 Ctrl+Z 键出来。
destination 新文件的目录和/或文件名。如果未指定目标,则源将复制到当前目录,其名称和创建日期与原始目录相同。如果源在当前目录中,则会显示一条错误消息,指出“文件无法复制到自身”。
file /A 强制 COPY 将文件视为 ASCII 文本文件。
file /B 强制 COPY 将文件视为二进制文件。
/V 验证是否可以读取新文件。
/Y 覆盖文件前无警告提示。
/-Y 显示警告并要求确认之前
覆盖文件。
从命令行使用时,如果destination 中指定的文件已经存在于指定位置,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 的根目录中。在第二种情况下,“无效目录”将显示错误消息。复制“mynotes”中的所有文件目录到名为“mynotes backup”的目录;在驱动器 D 上:
COPY c:\mynotes\*.* d:\mynotes backup\
制作“note.txt”的副本;在当前驱动器和目录中,并将其命名为“program note.txt”;
COPY note.txt "program note.txt"
DEBUG
DEBUG 是一种查看计算机部分并编写汇编代码以在计算机上执行某些任务的方法。 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 可以通过以下两种方式之一启动。
方法一:
在 DOS 提示符下输入
DEBUG (return)
DEBUG 将以连字符 (-) 提示符进行响应。当提示出现时,DEBUG 正在等待您输入它的多个单字母命令之一。以这种方式启动 DEBUG 将允许您在计算机的内部硬件上工作并查看 RAM 中所有内存位置的内容。您还可以加载软盘或硬盘的多达 128 个扇区,然后查看、编辑或将内容移动到其他位置。
DEBUG 在内存中设置了一个工作区,其大小为 65,535(十进制)一个字节位置,等于十六进制中的 FFFF 字节。该区域的前 256(十进制)或 100 个十六进制字节被留作所谓的程序段前缀 (PSP),不得以任何方式更改。每当我们使用 DEBUG 将扇区或数据加载到内存中时,都必须将其放在从偏移 100 开始的位置。
以下行显示了一个调试命令的示例。
DEBUG
L 0100 0 0 80 (return)
在这个命令中,我们告诉调试从偏移量 100 开始加载到内存中,从 A 驱动器的 80(十六进制)扇区开始,从扇区 0 开始。80 个十六进制扇区等于 128 个十进制扇区,所以如果磁盘上的每个扇区,存储512 字节,则加载到内存中的总字节数为 (512 X 128) 或 65,540 字节(最大值)。
方法二:
在 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 个十六进制(256 个十二月)位置。 COM 程序的第一条指令必须从内存中的偏移量 100 开始。
DOS 为 COM 程序创建 PSP,这意味着我们在汇编程序时不必关心这个问题。所有数据、代码和堆栈区都在同一段内存中(1 段为 64K)。
EXE扩展
EXE 程序可以是从 200 字节到 640k 字节的任意大小。 PSP 必须由程序员在程序编译时设置。程序员确定第一条指令在程序中的位置。 EXE 程序对内存中的数据、代码和堆栈区域使用单独的段。
从EXE和COM文件属性的比较可以看出,汇编EXE程序要比汇编COM程序困难得多。调试实用程序被设计为仅与 COM 程序一起工作,每次我们进入调试时都会设置 PSP 区域。
一旦在 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 (or ERASE)
删除命名文件。 DEL 和 ERASE 是同义词。
语法:
删除文件:
DEL [path] filename [/P]
Filename 要删除的文件的名称。
/P 在删除每个文件之前强制确认。
确认删除目录中的所有文件:
DEL path or
DEL path \*.*
要在不确认的情况下删除目录中的所有文件:
DEL path \?*.*
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
directory 要删除的目录。
/Y 取消之前的确认提示
删除。
删除所有文件和子目录但保留目录本身:
DELTREE [/Y] directory\*.*
要删除文件:
DELTREE [/Y] filename
DELTREE 命令删除目录或子目录中包含的所有文件,无论文件标记为隐藏、系统还是只读。
DELTREE 命令支持通配符,但应谨慎使用。如果指定的通配符同时匹配目录名和文件名,则目录和文件都将被删除。
在使用 DELTREE 命令指定通配符之前,使用 DIR /A 命令查看您将删除的文件和目录。指定完整路径以避免模棱两可的规范带来的任何意外也是最安全的。让我们看一些例子。
删除驱动器 C 上的 NOTES 目录,包括 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. |
创建 DOSKEY 宏:
DOSKEY 宏名=文本
运行宏:
大写字母
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. |
删除宏:
DOSKEY 宏名=
DOSKEY 特殊字符
宏中可以使用以下特殊字符来控制命令操作:
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 [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 用于复制软盘。目标磁盘上的所有数据都将被覆盖。
语法:
DISKCOPY drive1: [drive2:] [/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) 指定要加载的初始文件。也可以使用通配符。
要查看快捷键列表,您可以查看“帮助”;编辑器菜单。
EXIT
对于windows环境下的DOS,EXIT命令用于退出DOS shell,否则如果正常通话,退出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 进行比较。在大多数情况下,会比较二进制文件以查看它们是否相同。要简单地查看两个二进制文件是否相同,通常最快的方法是将它们作为 ASCII 文件进行比较,使用 /LB1 开关将输出降至最低。
让我们看一个处理时间显着差异的例子。通过尝试以下示例,您将能够了解如何以节省时间和击球的方式使用 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 是 MS-DOS 实用程序,用于通过定义硬盘分区的大小和性质来创建 MBR。 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
如果字符串包含引号,这些必须加倍:
查找“”B.E.的结果。最后一年“”没有显示。”结果.doc
格式
格式化磁盘以供 MS-DOS 使用。永远记住,存储在磁盘中的数据将在格式化后被擦除。在使用 format 命令之前要小心并确定,并始终记得查看您在 FORMAT 命令中输入的驱动器号。
语法:
格式化驱动器:[/Switches]
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 [驱动器:] [标签]
Drive:要命名的磁盘的位置。
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.
一次显示一个屏幕的文件名文件
MORE 文件名和 MORE < filename 是同义词,等同于 TYPE filename |更多的。在所有这些情况下,文件名一次显示一屏。按“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 或任何其他磁盘扫描程序扫描磁盘。它可能会使您的数据信息失真并且难以恢复。不仅如此,您可能无法完全恢复数据 |
通常,DOS 版本的 Scandisk 不会在 Windows 运行时运行。它不会发出错误信号,而是自动将控制权转移到 Windows 版本的 Scandisk
类型
TYPE 命令用于在屏幕上显示 ASCII 文本文件的内容。
语法:
类型文件名
要一次显示一个屏幕的文本文件,请将 TYPE 命令的输出通过管道传输到 MORE。让我们看一些例子:
显示 ROMI.TXT 的内容:
TYPE romi.txt
如果文件太长而无法在单个屏幕上显示:
类型 romi.txt |更多的
XCOPY
当您想要备份重要数据甚至想要制作整个驱动器的映像以复制文件和目录树时,此命令是最重要的命令之一。
XCOPY 类似于 COPY 命令,只是它有更多的开关,可以在使用通配符时对复制的内容进行相当大的控制。
语法:
XCOPY 源 [目标] [/Switches]
source 要复制的文件和目录。可以使用通配符(* 或 ?)。
destination 新文件的路径和/或名称。如果省略了目标,则将文件复制到当前目录。如果destination 引用一个不存在的目录,则创建该目录。默认情况下,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:应该是另一个硬盘的Active分区。这会将源驱动器的全部数据(包括已安装的操作系统、软件、文档等)作为图像复制到目标驱动器。
在此之后,如果您使用 目标 驱动器启动您的计算机,它将与 源 驱动器工作相同,并且会显示您之前的所有数据在源驱动器中。
规范快捷方式、通配符和重定向
快捷方式
在目录之间导航时,许多 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,那么 dir c: 在 a:\>提示将列出 c:\windows\java\notes 中的文件
- 如果当前驱动器和目录是 c:\data\docs\letters,则:
- 如果当前驱动器和目录是 c:\,那么:
通配符
许多 DOS 命令,如 ATTRIB、COPY、DEL、DELTREE 等,都接受使用“通配符”。 (* 和 ?)。一般而言,* 表示多个字符,而 ?指文件或目录名称中的单个字符。
这就是我们不能在任何文件名中使用这些字符的原因。这些特殊字符是 / \ : * ? < > “ |不应尝试插入文件名。下表显示了通配符的使用:
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,则 EDIT " ”将在该目录中创建一个名为“notes”的文件。
DEL 可识别 " ”作为 *.* 并在删除目录中的所有文件之前提示确认。与 EDIT 一样,引号之间的空格数似乎并不重要,但如果没有空格,则会显示一条错误消息,指出缺少必需的参数。
与 EDIT 不同,可以包含路径,如果包含,则引号之间不需要空格。即删除当前目录中的所有文件:
DEL ./“”有效,但 DEL “”给出错误信息。
COPY 还可以看到 " ”作为 *.* 并且像 DEL 一样,接受带有它的路径。与 DEL 不同,引号之间必须始终有一个空格,即使包含路径也是如此
重定向
许多 DOS 命令将输出发送到屏幕和/或需要用户输入。重定向是一种机制,可以将命令的输出提供给其他设备,例如打印机或文件,也可以提供给其他程序或命令。
有四种重定向功能:
> |
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 确实存在,则将命令的输出添加到其中,这与 > 不同。覆盖原始内容的功能。让我们通过例子更好地理解它。
要将 c:\windows\system 目录中文件的目录列表添加到之前创建的目录中:
DIR 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
让我们看一个输入长文本文件的例子:
输入文件.txt |更多