第 7 章
所需的 DOS 命令
介绍
当我们尝试从磁盘恢复数据时,需要付出多少努力来恢复丢失的数据取决于数据丢失的情况。在很多情况下,如果我们对一些重要的DOS(磁盘操作系统)命令有足够的了解,我们就可以较轻松地恢复数据。
在某些情况下,我们可能无需编程,只要巧妙地使用这些命令就可以恢复数据。
我认为您对 DOS 及其命令一无所知。在本章 DOS 命令介绍中,我们将仅学习那些可以帮助我们恢复数据的命令。首先,我们来看一下MS-DOS的演变过程。
历史简介
MS-DOS 操作系统基于 Intel 8086 微处理器系列。MS-DOS 从一个简单的程序加载器演变为复杂、稳定的个人电脑操作系统。
Microsoft 磁盘操作系统 (MS-DOS) 版本 1.0
IBM 于 20 世纪 80 年代初开发了这种计算机。微软开发了MS-DOS 1.0。它于 1981 年 8 月发布,包含 4,000 行汇编语言源代码,运行在 8 KB 内存中。
此后不久,1982 年,MS-DOS 1.1 版发布,支持 320 KB 双面软盘。 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 英寸驱动器。 IBM 3.3 版于 1987 年推出,主要用于支持 IBM PS/2 系列计算机。
MS-DOS 3.3 版添加了许多新功能和命令。 Compaq DOS 3.31 版允许硬盘分区大于 32 兆字节。
MS-DOS 版本 4.01 也能读取大于 32 MB 的分区。最初发布为 MS-DOS 4.0,由于一些小错误导致发布了包含各种修复的更新版本 4.01。此版本增加了全屏、称为 DOS SHELL 的菜单驱动界面以及对扩展内存规范的额外支持。
5.0 版本的开发是为了替代所有以前版本的 DOS。对于 DOS 5.0,IBM 和 Microsoft 都销售相同的 DOS,甚至文档也相似。内存要求已显著减少。对扩展和附加内存的支持已经有了显著的改进。
此版本的 DOS 包含 DOS“EDIT”编辑器。 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 随 Windows 95 一起提供,以便向后兼容 DOS 和 Windows 3.x 应用程序。让我们在下表中查看 MS-DOS 到 Windows 的演变:
MS – DOS 版本 |
注释和评论 |
MS-DOS 1.0 |
1981 年 IBM PC 上的第一个操作系统 |
MS-DOS 1.25 |
添加了双面磁盘支持和错误修复 |
MS-DOS 2.0
|
1983年随IBM PC/XT推出,增加了对分层文件结构和硬盘的支持。 |
MS-DOS 2.01 |
2.0 具备国际支持 |
MS-DOS 2.11 |
2.01 修复了错误 |
MS-DOS 2.25 |
支持扩展字符集 |
MS-DOS 3.0 |
增加了对 1.2MB 软盘和更大硬盘的支持 |
MS-DOS 3.1 |
增加了对 Microsoft 网络的支持 |
MS-DOS 3.2 |
增加了对 3.5 英寸磁盘的支持 |
MS-DOS 3.3 |
通用代码页(字体)支持 |
MS-DOS 4.0 |
支持大于 32 MB 的逻辑卷和 Visual shell |
Windows 1.0 |
MS-DOS 的图形用户界面 |
Windows 2.0 |
与 OS/2、Presentation Manager 兼容 |
Windows 95 |
使用版本 4.00.950 |
Windows 95 SE |
使用版本 4.00.1111 |
Windows 98 |
使用版本 4.10.1998 |
Windows 98 第二版 |
使用版本 4.10.2222 |
Windows 千禧版 |
使用版本 4.90.3000 |
视窗系统 |
使用版本 4.0 |
Windows 2000 |
使用版本 5.00.2195 |
Windows XP |
使用版本 5.1.2600 |
必要的命令
让我们学习一些在我们尝试通过编程和非编程技术恢复数据时可能有用的重要命令:
属性
ATTRIB 命令用于显示、设置或删除文件和目录可分配的四个属性(只读、存档、系统和隐藏)中的一个或多个。它通常用于删除只读、隐藏和系统属性,以便可以移动或删除文件,或者也可以设置这些属性,使文件无法移动或删除。
句法:
显示当前目录中所有文件的属性设置:
属性
显示目录的属性:
ATTRIB 目录名
显示文件的属性:
ATTRIB 文件名
要设置或删除文件或目录的属性:
ATTRIB [ + | - R] [ + | - A] [ + | - S] [ + | - H] [目录|文件名] [/S]
+ 设置属性,- 清除属性。
R |
只读文件属性。 |
一个 |
存档文件属性。 |
年代 |
系统文件属性 |
赫 |
隐藏文件属性。 |
/S |
处理指定路径下所有目录中的文件。 |
只读属性允许访问文件但不能修改。系统属性通常保留给 DOS 或 Windows 正确加载所需的文件。设置了隐藏属性的文件和目录通常不会显示在目录列表或打开文件对话框中。
隐藏文件夹的常见原因是它们对系统或程序运行很重要,不应在随意的整理操作中被删除或移动。隐藏文件夹和系统文件夹通常还具有只读属性集。
可以通过组合开关(用空格分隔)来设置或清除多个属性。尽管文件和目录都可以使用 ATTRIB 分配和清除属性,但它们的行为方式存在差异 - 其中最明显的是通配符(?和 *)可用于显示或更改一组文件的属性,而目录必须完整命名。我们将在本章后面详细了解通配符和快捷方式。
将文件属性设置为系统、隐藏或只读,将阻止使用 DEL、ERASE 或 MOVE 命令删除或移动文件,但不会保护文件免遭 DELTREE 或 FORMAT 的攻击。虽然可以设置目录的只读属性,但这似乎没什么用处。
首先,该属性仅适用于目录,而不适用于其中的文件。此外,将文件夹设置为只读并不能防止其被删除,但在 Windows 资源管理器中,它将导致在删除或移动文件夹之前显示警告通知。
显示名为“readme”的文件的属性:
ATTRIB 自述文件
要将只读属性分配给文件“readus.txt”,请使用:
ATTRIB readus.txt +R
要从“data19.txt”中删除系统和隐藏属性:
属性-S-H 数据19.txt
隐藏目录“c:\mynotes”
属性 +H c:\mynotes
隐藏 C 盘中的文件但不隐藏目录:
属性 +H c:*.*
CD(或 CDIR)
更改(或显示)指定驱动器上的当前目录。
句法:
显示当前目录:
CD [驱动器:]
更改当前目录:
CD 路径
路径 将当前目录更改为路径。每个驱动器都有自己的“当前目录”,在更改之前,该目录将保持“当前”状态,因此更改驱动器 c: 的当前目录不会影响任何其他驱动器的当前目录状态。要更改为其他驱动器上的当前目录,只需输入驱动器号和冒号即可。
如果当前驱动器是 c:,则进入目录“
c:\windows\java”
光盘\windows\java
如果当前目录已经是“c:\windows”,则需要做的就是:
光盘java
要将当前目录“c:\windows\java”更改为父目录“c:\windows”:
光盘..
假设你当前在目录“c:\windows\java\notes\klip\”,现在如果你想直接跳转到windows目录,只需要像我们在上一种情况下所做的那样增加两个点(..),就像这张
CD一样……
如果 c: 驱动器上的当前目录是“c:\windows\notes”,而 e: 驱动器上的当前目录是“e:\movie”,则要将所有文件从“e:\movie”复制到“c\windows\notes”:
复制 e:*.* c:
要将所有文件从“e:\downloads”复制到 c 的根目录:
复制 e:*.* c:\
校验
CHKDSK 用于检查磁盘状态、修复某些磁盘错误并显示状态报告,其中显示文件分配表 (FAT) 和目录结构中发现的任何错误。CHKDSK 还会显示磁盘使用情况摘要。如果在磁盘上发现错误,CHKDSK 会显示警告消息。
句法:
CHKDSK [路径] [/F] [/V]
路径指定要检查的驱动器和目录。
/F 修复磁盘上的错误。
/V 显示磁盘上每个文件的完整路径和名称
SCANDISK 可以可靠地检测和修复更广泛的磁盘问题,通常比有些过时的 CHKDSK 更受欢迎。除了 DOS 和 CHKDSK 本身之外,不应在运行任何程序时使用 /F 开关(用于修复发现的任何错误)。
CHKDSK 不能用于使用 SUBST 创建的驱动器,也不能用于网络驱动器。在 win98 中,CHKDSK 不检查磁盘,但仍提供一些基本数据
如果您的磁盘崩溃或启动扇区(如 MBR、DBR、FAT)中存在任何逻辑错误,或者根目录已损坏,则不应使用 CHKDSK 或 SCANDISK 或任何其他磁盘扫描程序扫描磁盘。这可能会使您的数据信息失真,并且很难恢复。不仅如此,您可能无法完全恢复数据。 |
中立证券
清除屏幕,仅留下命令提示符和光标。
句法:
中立证券
命令
启动命令解释器的新副本。
句法:
命令 [路径] [设备] [/开关]
路径包含 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 的主要用途是将一个或多个文件复制到另一个位置,但它也可以用于合并(附加和连接)文件以及直接输入到文件、打印机或其他设备。
句法:
复制 [/A | /B] 源 [/A | /B] [+ 源 [/A | /B] [+ ...]]
[目的地 [/A | /B]] [/V] [/Y | /-Y]
源 要复制的文件。虽然这必须是单个参数,但它可能包含使用通配符(* 或 ?)指定的多个文件。它也可能是有效的设备(例如 CON)
如 COPY CON NOTES.TXT
现在编写或复制文本,然后按 Ctrl+Z 键退出。
目标 新文件的目录和/或文件名。如果未指定目标,则源文件将复制到当前目录,其名称和创建日期与原始文件相同。如果源文件位于当前目录中,则会显示一条错误消息,指出“无法将文件复制到其自身”。
文件 /A 强制 COPY 将文件视为 ASCII 文本文件。
文件 /B 强制 COPY 将文件视为二进制文件。
/V 验证是否可以读取新文件。
/Y 覆盖文件之前不提示警告。
/-Y 在覆盖文件之前显示警告并要求确认。
从命令行使用时,如果目标中指定的文件已存在于指定位置,则 COPY 将默认显示警告消息并要求确认才能覆盖旧文件。另一方面,当在批处理文件中使用 COPY 时,任何现有文件都将被覆盖而不会发出警告。
可以通过在 COPYCMD 环境变量中预设 /Y | /-Y 开关来修改此默认行为,并使用命令行上的 /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”:
复制 note.txt c:\mynotes
或者
复制 note.txt c:\mynotes\
在第一种情况下,如果“mynotes”目录不存在,则“note.txt”将被复制到驱动器 C 根目录中名为“mynotes”的文件中。在第二种情况下,将显示“无效目录”错误消息。要将“mynotes”目录中的所有文件复制到驱动器 D 上名为“mynotes backup”的目录中:
复制 c:\mynotes\*.* d:\mynotes 备份\
在当前驱动器和目录中复制“note.txt”,并将其命名为“program note.txt”
COPY note.txt “程序说明.txt”
调试
DEBUG 是一种查看计算机各部分并编写汇编代码以在计算机上执行某些任务的方法。MS-DOS 2.x - 4.x 使用 DEBUG.COM,MS-DOS 5.x 及更高版本使用 DEBUG.EXE 来实现此目的。
DEBUG.EXE 是那些小程序中的一个,在熟练用户的手中,它是一个功能非常强大的工具,可以查看和编辑内存的内容,包括短期内存(RAM)和长期内存(硬盘/软盘/磁带介质)。还可以编译(并且在一定程度上反编译)汇编语言代码。
DEBUG 是一个字节编辑器,允许在字节级别查看和修改文件。由于没有“撤消”命令,因此通常建议使用它,因此在使用它之前请先备份。使用 DEBUG 实用程序时,请确保您知道自己在做什么。
这是一个功能强大的程序员工具,可用于在硬件级别访问您的计算机。如果您不小心,可能会造成诸如擦除硬盘或锁定键盘之类的损害。
句法:
调试 [文件名]
DEBUG [[驱动器:] [路径] 文件名 [测试文件参数]]
[drive:][path]filename 指定要测试的文件。
testfile-parameters 指定要测试的文件所需的命令行信息。
如何启动 DEBUG
DEBUG 可以通过两种方式启动。
方法一:
在 DOS 提示符下输入
调试(返回)
DEBUG 将以连字符 (-) 提示符进行响应。出现提示符时,DEBUG 正在等待您输入其众多单字母命令之一。以这种方式启动 DEBUG 将允许您处理计算机的内部硬件并查看 RAM 中所有内存位置的内容。您还可以加载软盘或硬盘的多达 128 个扇区并查看、编辑或将内容移动到其他位置。
DEBUG 在内存中设置了一个工作区,其中包含 65,535 个(十进制)字节位置,相当于十六进制的 FFFF 字节。此区域的前 256 个(十进制)或 100 个十六进制字节被留作程序的程序段前缀 (PSP),不得以任何方式更改。每当我们用 DEBUG 在内存中加载扇区或数据时,它都必须放在从偏移量 100 开始的位置。
下一行显示了一个调试命令的示例。
调试
L 0100 0 0 80(返回)
在这个命令中,我们告诉调试从 A 驱动器的偏移量 100、80(十六进制)个扇区(从扇区 0 开始)开始加载到内存中。80 个十六进制扇区等于 128 个十进制扇区,因此如果磁盘上的每个扇区存储 512 个字节,则加载到内存中的总字节数为(512 X 128)或 65,540 字节(最大值)。
方法二:
在 DOS 提示符下输入
DEBUG \path\filename (返回)
然后,DEBUG 会将自身与命令行的路径和文件名字段中指定的文件一起加载到内存中,并将文件的第一个字节放在工作区的偏移量 100 处。
通过这种方式启动 DEBUG,我们可以查看、编辑或移动 COM 程序或 ASCII 文本文件。这是 DEBUG 或修复 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”并回车。
让我们看一个例子:
调试 <返回>
D40:00 <返回>
将显示有关您的计算机端口的信息,如果任何端口不存在或没有响应,该端口的状态将显示为 00。
现在输入 Q 返回。
问 <返回>
一旦调用了 DEBUG,就会显示一个有点神秘的“DEBUG 提示符”,即连字符 (-)。在提示符下,以下“DEBUG 命令”有效:
命令 |
参数 |
行动 |
? |
|
这是 DEBUG 命令的列表。 |
一个 |
[地址] |
集合 |
碳 |
范围地址 |
比较 |
德 |
[起始地址 [结束地址 | L范围]] |
显示一段内存。默认情况下,起始地址是第一个空闲内存段的偏移量 100,或者包含 DEBUG 加载的文件的段的偏移量 100。默认结束地址是 017F(范围为 128 字节)。 |
和 |
地址[列表] |
进入 |
F |
范围列表 |
充满 |
格 |
[=地址] [地址] |
去 |
赫 |
值1 值2 |
十六进制 |
我 |
港口 |
输入 |
大号 |
- |
将先前“命名”的文件(通过N 命令)加载到内存中,以便在其中查看/编辑。 |
大号 |
数字 |
与接受“范围”参数的命令一起使用,以表示字节数。通常在参数中使用如下:起始地址 L 数字。如果数字应使结束地址超出段的末尾,则数字将被截断,因此结束地址是段的最后一个字节。 |
米 |
范围地址 |
移动 |
否 |
[路径] 文件名 [参数列表] |
“命名”一个文件用于调试。文件必须先“命名”,然后才能加载以供查看/编辑。 |
这 |
端口字节 |
输出 |
磷 |
[=地址] [号码] |
继续 |
问 |
|
退出 DEBUG。 |
R |
[登记] |
登记 |
年代 |
范围列表 |
搜索 |
电视 |
[=地址] [值] |
痕迹 |
在 |
[范围] |
未组装 |
在 |
[地址] [驱动器] [第一个扇区] [编号] |
写 |
沙阿 |
[#页] |
分配扩展内存 |
XD |
[处理] |
取消分配扩展内存 |
西门子 |
[左页] [右页] [句柄] |
映射扩展内存页面 |
XS |
|
显示扩展内存状态 |
DEL(或 ERASE)
删除命名的文件。DEL 和 ERASE 是同义词。
句法:
要删除文件:
DEL [路径] 文件名 [/P]
文件名 要删除的文件的名称。
/P 删除每个文件之前强制确认。
要删除目录中的所有文件并确认:
DEL 路径或
DEL 路径 \*.*
要删除目录中的所有文件而不进行确认:
小路\?*。*
DEL 仅接受一个参数,指定要删除的内容。但是,可以使用通配符写入此参数,以便删除多个文件。如果检测到多个参数,则命令中止并显示错误消息。
DEL 会将带有空格的长文件名解释为多个参数,从而导致错误。将带有空格的长文件名括在引号中即可解决该问题。让我们看一个例子:
D:\>删除注释2.txt
参数过多-2.txt
D:\>del“注释2.txt”
D:\>_
DEL 不会删除设置了只读、隐藏和/或系统属性的文件。要删除此类文件,可以使用 DELTREE 或使用 ATTRIB 命令修改必要的属性。
德尔特里
删除文件和目录,以及其中的所有子目录和文件。
句法:
删除目录以及其中包含的所有子目录和文件:
DELTREE [/Y] 目录
目录 要删除的目录。
/Y 抑制删除前的确认提示。
删除所有文件和子目录但保留目录本身:
DELTREE [/Y] 目录\*.*
要删除文件:
DELTREE [/Y] 文件名
DELTREE 命令删除目录或子目录中包含的所有文件,无论文件是否标记为隐藏、系统或只读。
DELTREE 命令支持通配符,但使用时应谨慎。如果指定与目录名和文件名都匹配的通配符,则目录和文件都将被删除。
在使用 DELTREE 命令指定通配符之前,请使用 DIR /A 命令查看要删除的文件和目录。指定完整路径也是最安全的,以避免因指定不明确而导致意外。让我们看一些例子。
要删除驱动器 C 上的 NOTES 目录,包括 NOTES 目录下的所有文件和子目录:
DELTREE c:\notes
要删除 NOTES 目录中的所有文件和子目录,留下一个空目录 NOTES 以供将来使用,并避免提示确认:
DELTREE /Y c:\notes\*.*
要删除 c:\data 目录中的只读文件 restore.doc 而不重置属性:
DELTREE /Y c:\data\recover.doc
道斯基
DOSKEY 是一个 TSR,旨在通过更轻松地编辑命令行、记住以前的命令以及能够记录宏来协助从命令行工作。
句法:
要加载 DOSKEY:
DOSKEY [/开关]
开关 |
它的作用 |
/B: xxx |
设置宏和命令的缓冲区大小。xxx 的最小值为 256,默认值为 512(字节)。如果 DOSKEY 已在运行,则在更改缓冲区大小时必须重新加载(使用 /R)。 |
/E:开|关 |
启用|禁用宏播放时命令的显示。默认情况下, E(回显)处于开启状态。 |
/F:文件名 |
检索文件名- 包含宏列表的文本文件,格式为Macroname=Text |
/小时 |
显示内存中存储的所有命令。(此列表不会重定向到文件)。 |
/输入|输出 |
指定默认情况下文本是以插入模式还是重写模式输入的。无论哪种情况,都可以使用 <Insert> 选择替代模式,但只要使用 <Enter> 键,就会重置默认模式。默认模式是重写模式。 |
/K: xx |
设置键盘输入缓冲区的大小。默认值为 15(字符)。如果 DOSKEY 已在运行,则在更改缓冲区大小时必须重新加载(使用 /R)。 |
/升 |
设置行编辑缓冲区的最大大小。默认值为 128(字符)。 |
/米 |
显示缓冲区中当前所有 DOSKEY 宏的列表。可以使用标准 Dos 重定向 (>) 将此列表重定向到文本文件 |
/R |
安装 DOSKEY 的新实例。如果 DOSKEY 已在运行,则缓冲区中的宏和命令行历史记录将被清除。请注意,安装 DOSKEY 的新实例不会删除前一个实例。因此,每次使用 /R 都会占用另外 5K 常规/上位内存。 |
宏名 |
宏的名称。这是一个或多个字符的字符串,可能由 Ctrl 和/或 Alt 键修改。 |
文本 |
要分配给Macroname 的文本字符串。这通常是一个或多个 DOS 命令以及适当的参数和/或开关。 |
要创建 DOSKEY 宏:
DOSKEY 宏名=文本
要运行宏:
宏名
开关 |
它的作用 |
/B: xxx |
设置宏和命令的缓冲区大小。xxx 的最小值为 256,默认值为 512(字节)。如果 DOSKEY 已在运行,则在更改缓冲区大小时必须重新加载(使用 /R)。 |
/E:开|关 |
启用|禁用宏播放时命令的显示。默认情况下, E(回显)处于开启状态。 |
/F:文件名 |
检索文件名- 包含宏列表的文本文件,格式为Macroname=Text |
/小时 |
显示内存中存储的所有命令。(此列表不会重定向到文件)。 |
/输入|输出 |
指定默认情况下文本是以插入模式还是重写模式输入的。无论哪种情况,都可以使用 <Insert> 选择替代模式,但只要使用 <Enter> 键,就会重置默认模式。默认模式是重写模式。 |
/K: xx |
设置键盘输入缓冲区的大小。默认值为 15(字符)。如果 DOSKEY 已在运行,则在更改缓冲区大小时必须重新加载(使用 /R)。 |
/升 |
设置行编辑缓冲区的最大大小。默认值为 128(字符)。 |
/米 |
显示缓冲区中当前所有 DOSKEY 宏的列表。可以使用标准 Dos 重定向 (>) 将此列表重定向到文本文件 |
/R |
安装 DOSKEY 的新实例。如果 DOSKEY 已在运行,则缓冲区中的宏和命令行历史记录将被清除。请注意,安装 DOSKEY 的新实例不会删除前一个实例。因此,每次使用 /R 都会占用另外 5K 常规/上位内存。 |
宏名 |
宏的名称。这是一个或多个字符的字符串,可能由 Ctrl 和/或 Alt 键修改。 |
文本 |
要分配给Macroname 的文本字符串。这通常是一个或多个 DOS 命令以及适当的参数和/或开关。 |
要创建 DOSKEY 宏:
DOSKEY 宏名=文本
要运行宏:
宏名
DOSKEY 命令 |
它的作用 |
左/右光标 |
将光标向后/向前移动一个字符。 |
Ctrl + 左/右光标 |
将光标向后/向前移动一个单词。 |
首页/结束 |
将光标移动到行首/行末。 |
向上/向下光标 |
向上(和向后)滚动已存储命令列表。每按一次“向上”键,都会调用上一个命令并将其显示在命令行上。 |
向上/向下翻页 |
调用缓冲区中最旧/最新的命令 |
F1 |
将下一个字符从模板复制到命令行 |
F2 + 键 |
从模板复制文本直到(但不包括)键。 |
F3 |
将模板从当前字符位置复制到命令行。 |
F4 + 键 |
删除从当前字符位置到键(但不包括键 )的字符。 |
F5 |
将当前命令复制到模板并清除命令行。 |
F6 |
在命令行的当前位置放置文件结束字符 (^Z)。 |
F7 |
显示命令历史记录的编号列表。 |
Alt-F7 |
删除缓冲区中存储的所有命令。 |
字符 + F8 |
输入一个或多个字符Chars然后按 F8 将显示以Chars开头的最新命令。再次按 F8 将显示下一个以Chars开头的最新命令,依此类推。 |
F9 +命令# |
在命令行上显示指定的命令。 |
Alt-F10 |
删除所有宏定义。 |
要删除宏:
DOSKEY 宏名=
DOSKEY 特殊字符
以下特殊字符可用于宏中来控制命令操作:
人物 |
什么是 |
吉 |
重定向输出 – 相当于重定向符号> |
价格 |
将输出附加到文件末尾 - 相当于附加符号 >> |
$L |
重定向输入 - 相当于符号 < |
$B |
将宏输出发送到命令-相当于管道符号| |
$T |
在创建宏或在 DOSKEY 命令行上键入命令时分隔命令 |
$$ |
用于 $ 符号 |
1 至 9 美元 |
表示运行宏时可以指定的任何命令行参数。与批处理程序中的 %1 到 %9 字符相当 |
$* |
表示在写入 macroname 时可以指定的命令行信息。$*类似于可替换参数$n,不同之处在于在 macroname 之后的命令行中输入的所有内容都会替换宏中的$* 。 |
你
显示目录中的文件和子目录的列表。
句法:
DIR [驱动器:] [路径] [文件名] [/开关]
转变 |
什么是 |
没有任何 |
默认情况下,DIR 显示:
- 包含磁盘卷标和序列号的标题;
- 当前目录中所有文件和子目录的列表,按它们在 FAT 中的列出顺序排列,但标记为“隐藏”和/或“系统”的文件和子目录除外。每个文件/目录都包含其大小、上次修改的日期/时间和长文件名;
- 页脚包含列出的文件总数、其累计大小以及磁盘上剩余的可用空间(以字节为单位)。
|
/A [属性] |
显示具有和不具有指定属性的文件。可以指定多个属性,且它们之间没有空格。
属性(使用“-”作为前缀指定“不”)
D 目录
R 只读文件
H 隐藏文件
A 自上次备份以来修改的文件
S 系统文件 |
/O
[排序顺序] |
按排序顺序列出文件。
如果未指定排序顺序,则目录按字母顺序列出,然后是文件,也按字母顺序列出。可以指定排序顺序键的任意组合,文件将按键的顺序排序。sortorder (使用“
- ”作为前缀可反转顺序)
N 按名称(字母顺序)
S 按大小(从小到大)
E 按扩展名(字母顺序)
D 按日期和时间(最早的在前)
G 组目录优先
A 按上次访问日期(最早的在前) |
/S |
显示指定目录及其所有子目录中的文件 |
/在 |
宽列表格式。文件和目录名称列在 5 列中 |
/B |
裸格式。文件和目录列在一列中,没有标题、摘要或任何详细信息。 |
/升 |
输出为小写。 |
/P |
每屏暂停一次,显示大量信息。按任意键可查看下一屏。 |
/V |
强制进入详细模式。除了标准信息外,还会显示每个文件的属性、上次访问日期和分配的磁盘空间。 |
/和 |
长文件名不会显示在文件列表中。 |
/4 |
将日期显示为四位数字而不是两位数字。 |
DIR 命令仅接受一个路径作为参数。包含空格的长文件和目录名称必须用引号括起来。您还可以使用通配符(例如 * 和 ?)来显示文件和子目录子集的列表。
DIR 可以与标准句点 (.) 快捷方式一起使用,以显示更高级别的目录。如果使用的句点多于显示根目录、目录和文件所需的句点数。
当使用重定向将 DIR 命令的输出发送到文件或其他命令时,通常使用 /A:-D 仅列出文件,使用 /B 避免文件大小、标题和摘要信息等无关信息很有用。此外,当 DIR 命令的输出通过管道重定向时,会创建一个临时文件,操作完成后会自动删除该文件。
默认情况下,此临时文件位于“TEMP”环境变量指定的目录中,但如果未指定或找不到该目录,则会在当前驱动器的当前目录中创建该文件。如果 DIR 命令也引用当前目录,则会拾取任何此类临时文件并将其包含在列表中。
光碟复制
DISKCOPY 用于复制软盘。目标磁盘上的所有数据都将被覆盖。
句法:
DISKCOPY 驱动器 1:[驱动器 2:] [/1] [/V] [/M]
drive1 如果计算机只有一个软盘驱动器,则包含要从中复制磁盘和要将磁盘复制到的驱动器。
drive2 如果与 drive1 不同,则包含要复制的磁盘的驱动器。
/1 仅复制磁盘的第一面。
/V 验证信息是否被正确复制。
/M 强制仅使用内存进行多遍复制。
DISKCOPY 旨在通过将源磁盘逐字节复制到目标磁盘来复制标准软盘。DISKCOPY 不适用于硬盘驱动器、CD、网络驱动器或 Zip、Jazz 等类型的驱动器。还应记住,源磁盘和目标磁盘必须属于同一类型、大小和容量。如果不是,则会显示一条错误消息:
编辑
它是一个简单的全屏 DOSed ASCII 文本编辑器。
句法
编辑 [/B] [/H] [/R] [/S] [/nnn] [文件名]
/B 强制单色模式。
/H 显示硬件可能的最大行数。
/R 以只读模式加载文件。
/S 强制使用短文件名。
nnn 加载二进制文件,将行换行至 nnn 个字符宽。
filename(s) 指定要加载的初始文件。也可以使用通配符。
要查看快捷键列表,您可以查看编辑器的“帮助”菜单。
出口
在 Windows 环境下的 DOS 中,EXIT 命令用于退出 DOS shell,否则,一般来说,退出 MS-DOS 命令解释器 (COMMAND.COM) 并返回到启动命令解释器的程序(如果存在)。
句法
出口
足球俱乐部
比较两个文件或文件集并显示它们之间的差异。
句法:
FC [/交换机] 文件1 文件2
转变 |
它的作用 |
/B |
执行二进制比较。
两个文件逐字节进行比较,发现不匹配后不会尝试重新同步文件。当file1 的扩展名为 .EXE、.COM、.SYS、.OBJ、.LIB 和 .BIN 或类似扩展名时,这是比较文件的默认模式。 |
/升 |
以 ASCII 格式比较文件。
逐行比较两个文件,如果发现不匹配,FC 将尝试重新同步文件。当file1没有 .EXE、.COM、.SYS、.OBJ、.LIB 和 .BIN 或类似的扩展名时,这是比较文件的默认模式。 |
/LBn |
设置内部行缓冲区的行数。
如果被比较的文件有超过此数量的连续不同行,FC 将取消比较。n 的默认值为100 |
/nn |
在声明文件重新同步之前必须匹配的连续行数。如果文件中匹配的行数小于此数字,则匹配的行将显示为差异。nn 的默认值: 2。 |
/N |
显示 ASCII 比较的行号。 |
/一个 |
缩写 ASCII 比较的输出。仅显示每组差异的第一行和最后一行,而不是默认显示每行不同的行。 |
/C |
忽略字母的大小写。 |
/T |
不将制表符扩展为空格。
默认情况下,制表符被视为空格,1 个制表符 = 8 个空格。 |
/在 |
将制表符和多个空格压缩为一个空格以进行比较。 |
如果 file1 包含通配符,则所有适用文件都会与 file2 进行比较。如果 file2 也包含通配符,则将其与相应的 file1 进行比较。在大多数情况下,会比较二进制文件以查看它们是否相同。要简单地查看两个二进制文件是否相同,通常最快的方法是将它们作为 ASCII 文件进行比较,并使用 /LB1 开关将输出减至最少。
让我们看一个处理时间显著差异的例子。通过尝试以下示例,您将能够了解如何以节省时间和更轻松的方式使用 FC:
FC c:\windows\命令\xcopy.exe c:\windows\命令\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 环境中要做什么,并且应该确保这样做,否则它可能会删除或更改您的分区信息,并且您可能会丢失分区(即数据)。
在硬盘被 DOS 识别之前,必须先建立主引导记录 (MBR)。FDISK 是 MS-DOS 实用程序,用于通过定义硬盘分区的大小和性质来创建 MBR。MBR 将磁盘区域定义为:
扩展分区必须指定为包含一个或多个逻辑 DOS 驱动器。如果删除分区,则会破坏分区上的所有内容,或者至少会使恢复任何数据变得非常困难。我们将在本书的恢复编程部分了解有关 Fdisk 的更多信息。
寻找
FIND 命令用于在一个或多个文件中搜索文本字符串。搜索指定的文件后,FIND 将显示包含该字符串的任何文本行。
句法:
查找 [/V] [/C] [/N] [/I] “字符串” “文件名 1” “文件名 2” “文件名...”
转变 |
它的作用 |
/V |
显示所有不包含指定字符串的行。 |
/C |
仅显示包含该字符串的行数。如果与/V一起使用,FIND 将显示不包含指定字符串的行数。 |
/N |
显示行号和行。如果/C和/N一起使用,则/N将被忽略。 |
/我 |
忽略字符串中字符的大小写。默认情况下,FIND 区分大小写并搜索精确匹配的字符。 |
细绳 |
要查找的文本字符串。字符串必须用引号括起来。 |
文件名 |
要搜索的文件。如果文件名不包含空格,则无需用引号括起来。 |
如果未指定 filename,FIND 将从标准源(通常是键盘、管道或重定向文件)搜索文本输入。filename 中不接受通配符。此外,由于引号用于分隔字符串,因此不能在字符串中将其用作搜索模式的一部分。
要在字符串中包含引号,必须使用双引号 ("") 这一“特殊字符,FIND 会将其解释为搜索字符串中的引号。让我们看一些示例:
要显示文件“NOTES.TXT”中包含字符串“homework”的所有行:
查找“家庭作业”笔记.txt
如果字符串包含引号,则必须将其加倍:
查找““BE 最后一年”的结果尚未显示。”结果.doc
格式
格式化磁盘以用于 MS-DOS。请始终记住,格式化后磁盘中存储的数据将被删除。使用 format 命令前请务必小心谨慎,并始终记住查看在 FORMAT 命令中输入的驱动器号。
句法:
格式化驱动器:[/开关]
转变 |
它的作用 |
/V[:标签] |
指定卷标。如果省略 /V 开关或未指定标签,则格式化完成后会显示卷标提示。如果不需要卷标,可以通过指定以下内容来避免提示:/V:""
如果指定了标签并且在会话中格式化了多个磁盘,则所有磁盘都将具有相同的卷标。 |
/问 |
强制快速格式化之前已格式化的磁盘。磁盘的文件分配表 (FAT) 和根目录将被删除,但不会扫描坏区。 |
/S |
将系统文件复制到格式化的磁盘,使其成为启动盘。 |
/B |
在格式化的磁盘上为系统文件分配空间。 |
/F:尺寸 |
将磁盘格式化为驱动器设计容量以外的容量。大小可以是:360、720、1.2、1.44 和 2.88。 |
/T:轨道 |
指定磁盘每面的磁道数。 |
/N:扇区 |
指定每个磁道的扇区数。 |
/1 |
格式化软盘的单面。 |
/4 |
在高密度驱动器中格式化 5.25 英寸 360K 软盘。 |
/8 |
每磁道格式化八个扇区 |
/C |
测试当前标记为“坏”的簇。默认情况下,如果磁盘包含已标记为“坏”的簇,FORMAT 不会重新测试这些簇;它只是将它们标记为“坏”。 |
默认情况下,除非使用 /Q 开关;格式化过程中会检查磁盘上的每个扇区,以确保该扇区可以正确存储数据。
如果找到坏扇区,则会将其标记并不再使用。格式化完成后,将显示一条消息,其中显示总磁盘空间、标记为有缺陷的空间、已使用的空间以及可用于文件的空间。FORMAT 不能用于使用 SUBST 命令创建的虚拟驱动器。
重新格式化软盘的快速方法是:
人 /? |格式 /q/v:"" > nul
ren /? 部分除了提供大量冗余内容外,还提供了“enter”,然后是“n, enter”,以响应 FORMAT 的提示。>nul 可防止显示两个命令的混乱输出。
标签
LABEL 命令用于创建、更改或删除磁盘的卷标。磁盘的卷标与卷序列号(如果存在)一起显示为目录列表的一部分。
句法:
LABEL [驱动器:] [标签]
驱动器:要命名的磁盘的位置。
标签 新的卷标。
无 显示当前磁盘标签(如果存在)。提示输入新标签或删除现有标签
MD(或 MKDIR)
创建目录。MD 和 MKDIR 是同义词,执行相同的任务。
句法:
MD [路径] 目录名称
更多的
MORE 命令从管道或重定向文件读取标准输入并一次显示一屏信息。此命令通常用于查看长文件、目录输出等。
句法:
MORE [路径] 文件名
更多 < [路径] 文件名
命令 | MORE [路径] [文件名]
命令:要显示其输出的命令。
文件名文件,每次显示一屏
MORE filename 和 MORE < filename 是同义词,等同于 TYPE filename | MORE。在所有这些情况下,filename 一次显示一屏。按“Enter”显示下一屏。可以随时按 Ctrl-C 终止显示。MORE 会自动换行以适合屏幕。
让我们考虑一个名为 BIGFILE.TXT 的大文本文件的示例。现在以下三个命令将执行相同的任务:
输入 bigfile.txt | 更多
更多 bigfile.txt
更多 < bigfile.txt
移动
将文件和目录从同一驱动器或不同驱动器上的一个位置移动到另一个位置。
句法:
MOVE [/Y | /-Y] [路径] 文件名 目标
/Y 禁止提示确认目录创建或目标覆盖。这是在批处理文件中使用 MOVE 时的默认设置。
/-Y 强制提示确认目录创建或目标覆盖。这是从命令行使用 MOVE 时的默认设置。
如果列出多个要移动的文件,则目标路径必须是一个目录,并且文件将保留其原始名称。
RD(或 RMDIR)
移除(删除)一个空目录。RD 和 RMDIR 是同义词,执行相同的任务。
句法:
RD [路径] 目录名称
如果 path 中第一个目录名前有反斜杠 ( \ ),则该目录将被视为当前驱动器上根目录的子目录。如果 path 中第一个目录名前没有反斜杠,则该目录将被视为当前目录的子目录。
此外,RD 只会删除空目录。如果对包含文件和/或子目录的目录使用 RD,计算机将显示错误消息。
斯堪的纳维亚
运行 SCANDISK 磁盘修复程序。
句法
要检查并修复当前驱动器:
斯堪的纳维亚
如果您的磁盘崩溃或引导扇区(如 MBR、DBR、FAT 或根目录损坏)中存在任何逻辑错误,则不应使用 CHKDSK 或 SCANDISK 或任何其他磁盘扫描程序扫描磁盘。这可能会使您的数据信息失真,并且很难恢复。不仅如此,您可能无法完全恢复数据 |
通常,Windows 运行时,DOS 版 Scandisk 不会运行。它不会发出错误信号,而是自动将控制权转移到 Windows 版 Scandisk
类型
TYPE 命令用于在屏幕上显示 ASCII 文本文件的内容。
句法:
类型文件名
要一次显示一屏文本文件,请将 TYPE 命令的输出通过管道传输到 MORE。让我们看一些示例:
要显示 ROMI.TXT 的内容:
输入romi.txt
如果文件太长,无法在一屏中显示:
输入 romi.txt | 更多
复制
当您想要备份重要数据或甚至想要制作整个驱动器的映像来复制文件和目录树时,此命令是最重要的命令之一。
XCOPY 与 COPY 命令类似,不同之处在于它具有更多的开关,允许在使用通配符时对复制的内容进行相当程度的控制。
句法:
XCOPY 源 [目标] [/开关]
源要复制的文件和目录。可以使用通配符(* 或 ?)。
目标 新文件的路径和/或名称。如果省略目标,则文件将复制到当前目录。如果目标指向不存在的目录,则创建该目录。默认情况下,XCOPY 将其操作限制在源目录中的文件。
转变 |
它的作用 |
/和 |
复制源的完整子目录结构及其中的所有文件。 |
/S |
复制源的完整子目录结构及其中的所有文件,但不复制空子目录。 |
/T |
复制源的子目录结构,但不复制任何文件,也不复制空子目录。要包含空子目录,请与/E开关一起使用。 |
/一个 |
仅复制设置了存档属性的文件。 |
/米 |
仅复制设置了存档属性的文件,关闭源文件的存档属性。 |
/小时 |
包括设置了隐藏属性和系统属性的文件。 |
/K |
复制文件而不重置只读属性(如果已设置)。 |
/R |
覆盖只读文件。 |
/在 |
仅复制源中已存在于目标中的文件。可以与 /D 一起使用以使用较新的版本更新文件。 |
/D:日期 |
仅复制“上次修改日期”与date相同或晚于date 的文件。如果未指定date,则复制所有文件,但目标目录中的同名文件除外,这些文件的“上次修改日期”比源目录中的“上次修改日期”更近。 |
/我 |
强制将目标视为目录。文件/目录提示被抑制。 |
/和 |
不经提示覆盖现有文件。 |
/-和 |
覆盖现有文件之前提示。 |
/在 |
开始复制文件之前显示提示。 |
/P |
创建每个目标文件之前提示确认。 |
/F |
复制时显示完整的源文件名和目标文件名。 |
/问 |
复制时不显示文件名或任何其他消息。 |
/C |
即使出现错误也继续复印。 |
/升 |
显示要复制的文件但实际上并不复制它们。 |
/N |
使用生成的短名称进行复制。从 VFAT 卷复制到 FAT 卷时,这是必需的。 |
/V |
验证新文件是否可读。 |
默认情况下,XCOPY 不会复制设置了系统或隐藏属性的文件,而且只读文件的副本也不会设置只读属性,所有复制的文件都设置了存档属性。默认情况下,在使用源中同名的文件覆盖目标中的文件之前,XCOPY 会进行提示。
如果目标是否是目录或文件存在歧义,XCOPY 也会提示输入指令。当目标不引用现有目录或以“\ ”结尾时,就会出现歧义。例如,name.ext 的目标可以是文件或目录。让我们通过以下示例更好地了解它。
要将 notes 目录中的所有文件和子目录复制到驱动器 a 中的磁盘:
xcopy c:\notes a: /s
或者
xcopy c:\notes\*.* a: /s
要将 notes 目录中自 2002 年 12 月 9 日以来创建或修改的所有文件和子目录复制到驱动器 a 中的磁盘:
xcopy c:\notes a: /s /d:9/12/02
制作“驱动器映像”
如果您想将整个驱动器备份到另一个驱动器,或者想要将驱动器数据(包括操作系统和其他已安装的软件)的映像制作到另一个硬盘上,请尝试以下操作:
C:\>Xcopy * D:\I\E\C\H
此处D:应为另一块硬盘的活动分区。这将把源驱动器的全部数据(包括已安装的操作系统、软件、文档等)作为映像复制到目标驱动器。
此后,如果您使用目标驱动器启动计算机,它将以与源驱动器相同的方式工作,并显示源驱动器中拥有的所有数据。
规范快捷方式、通配符和重定向
快捷方式
在目录之间导航时,许多 DOS 命令可以识别某些快捷方式。其中最有名的是:
捷径 |
为什么要使用它 |
。 |
引用当前目录 |
.. |
引用父目录 |
\ |
引用当前驱动器的根目录。 |
驾驶: |
引用驱动器上的当前目录 |
让我们借助示例来理解它。如果 c: 驱动器上的当前目录是 c:\windows\java\notes,则 a:\> 提示符下的 dir c: 将列出 c:\windows\java\notes 中的文件
- 如果当前驱动器和目录是 c:\data\docs\letters,那么:
- 如果当前驱动器和目录是c:\,则:
通配符
许多 DOS 命令(如 ATTRIB、COPY、DEL、DELTREE 等)都接受使用“通配符”(* 和 ?)。一般而言,* 表示文件或目录名称中的多个字符,而 ? 表示单个字符。
这就是我们不能在任何文件的名称中使用这些字符的原因。这些特殊字符是 / \ : * ? < > “ | ,不应尝试将其插入文件名中。下表显示了通配符的使用:
通配符 |
它的作用 |
*.* |
具有所有扩展名的所有文件。 |
*数据*。* |
名称中任意位置含有“数据”的所有文件。 |
*大批。* |
名称以“array”结尾的所有文件 |
注意?.cpp |
所有以“note”加一个字符且扩展名为 .CPP 的文件。此文件可能是 note1.cpp,但不是 note.cpp。 |
?t*.* |
名称中第二个字母以“t”开头的所有文件 |
需要注意的是,并非所有命令都以完全相同的方式处理通配符。例如,DIR * 和 DIR *.* 被视为同义词,但 DEL * 只会删除没有扩展名的文件。
EDIT 和 DEL 接受用引号(“”)括起来的空格作为有效的文件规范,但方式却大不相同。
EDIT 将使用当前目录的名称打开一个文件。因此,如果当前目录是 D:\windows\java\notes,EDIT“ ”将在该目录中创建一个名为“notes”的文件。
DEL 将“ ”识别为 *.*,并在删除目录中的所有文件之前提示确认。与 EDIT 一样,引号之间的空格数似乎并不重要,但如果没有空格,则会显示一条错误消息,指出缺少必需的参数。
与 EDIT 不同,可以包含路径,如果包含路径,则引号之间不需要有空格。例如,删除当前目录中的所有文件:
DEL ./"" 可以工作,但是 DEL "" 会给出错误消息。
COPY 也将“ ”视为 *.*,并且像 DEL 一样接受带有路径的命令。与 DEL 不同,引号之间必须始终有一个空格,即使包含路径也是如此
重定向
许多 DOS 命令将输出发送到屏幕和/或要求用户输入。重定向是一种机制,通过该机制,命令的输出可以馈送到其他设备(例如打印机或文件)或其他程序或命令。
有四种重定向函数:
> |
重定向输出 |
>> |
附加 |
< |
重定向输入 |
| |
管道 |
>
将命令的输出从“标准输出设备”(通常是显示器)重定向到另一个设备(例如打印机)或文件。
句法:
要重定向输出到设备:
命令 > 设备
要重定向输出到文件:
命令 > 文件名
可接受的设备名称有 CON(监视器)、PRN(LPT1 - 假定为打印机)、LPT1 - 3(并行端口 - 通常连接到打印机)、COM 1 - 4(串行端口)和 NUL(电子空白)。
如果指定了除可识别设备以外的任何内容,则假定它是文件的名称。如果已存在具有指定文件名的文件,则会覆盖该文件而不发出任何警告。让我们看一些示例以更好地理解它。
此重定向功能最常见的用途可能是将目录列表发送到打印机或将其保存为文件。要打印出 Windows 目录中所有文件的排序目录列表:
DIR c:\windows /o/a > PRN
要创建包含同一目录的目录列表的文件:
DIR c:\windows /o/a > d:\windows.txt
>>
将命令的输出附加到指定文件。
句法:
命令 >> 文件名
如果 Filename 不存在,则创建它。如果 Filename 存在,则命令的输出将添加到其中,这与 > 函数不同,后者会覆盖原始内容。让我们通过示例更好地理解它。
要将 c:\windows\system 目录中文件的目录列表添加到之前创建的目录中:
DIR c:\windows\system /o/a >> d:\windows.txt
<
将输入定向到默认来源以外的命令。默认来源通常是键盘。
句法:
命令 < 数据源
它通常用于批处理编程。让我们通过示例来理解它。以下 DEBUG 命令的过程用于备份 MBR,其中 MBR.BIN 是执行此命令后创建的备份文件的名称。
调试mbr.bin
一个
MOV DX,6000
MOV 是,DX
异或BX,BX
MOV DX, 0080
MOV CX,0001
移动 AX, 0201
智力 13
智力 20
<Enter>(不输入任何内容)
格
韋克西
200
6000:0000 时
问
为此,我们使用批处理文件创建两个批处理文件,一个包含运行 DEBUG 命令的指令,另一个包含将作为输入传递给 DEBUG 命令的其他指令。该文件将作为第一个文件的数据源。让我们看看如何:
C:\ mbr.bat
现在让我们看看这个MBR.BAT包含什么。
引导记录 |
调试 mbr.bin < ttsource.bat |
显然,第二个名为 TTSOURCE.BAT 的文件将作为此数据源,并包含以下指令:
源程序 |
一个 |
MOV DX,6000 |
MOV 是,DX |
异或BX,BX |
MOV DX, 0080 |
MOV CX,0001 |
移动斧头, 0201 |
智力 13 |
智力 20 |
<enter>(不输入任何内容) |
格 |
瑞舒 |
200 |
6000:0000 时 |
在 |
|
管道将一个程序或命令的输出重定向到第二个程序或命令。
句法:
团队1 |团队2
我们来看一个输入长文本文件的例子:
类型 file.txt |更多