DOS系统中有许多未公开的命令与参数。我经过收集整理,发现了很多。由于DOS的有好几种,所以下面仅以MS-DOS为例,介绍一下常用命令中的未公开 的命令与参数。经过比较,我发现在MS-DOS的各版本中,7.x版中的未公开命令与参数是最多的,这些7.x版本中的未公开命令与参数在其它DOS版本 中通常是没有的,但却是非常实用的,例如COMMAND /Z命令,这是用DOS自带的命令显示ERRORLEVEL(错误返回代码)值的唯一方法(当然,用其它的附加工具,如ERR2ENV等也可以做到)。
DOS未公开命令:
TRUENAME:用于显示实际的路径,对SUBST等命令很有用。
INSTALLHIGH:用在CONFIG.SYS中,将文件调入UMB。
LOGO和COMMENT:仅用在MS-DOS 7.x中的CONFIG.SYS中,用法未知。
DOS未公开参数:
COMMAND /F 使Fail作为Abort,Retry,Fail中的默认选项。
COMMAND /D 在DOS5中是禁止AUTOEXEC.BAT自动执行;在6.0+版本中是禁止/F参数。
COMMAND /Z 显示ERRORLEVEL(错误返回代码)信息。
COMMAND /T 在MS-DOS 7.x中强制将COMMAND.COM永久性调入常规内存。
FORMAT /AUTOTEST 自动完成格式化过程。
FORMAT /BACKUP 自动完成格式化过程,并提示输入卷标。
FORMAT /SELECT 只在磁盘上备份系统区数据,相当于MIRROR程序。
FORMAT /SELECT /U 将引导区和文件分配表用F6H填之。
FORMAT /Z:n 设置FAT32分区上的簇大小。
FDISK /MBR 重写硬盘主引导记录。
FDISK /CMBR drive 重写指定驱动器上的主引导记录。
FDISK /PRI:size 创建主分区。
FDISK /EXT:size 创建扩展分区。
FDISK /LOG:size 在扩展分区上创建逻辑驱动器。
FDISK /PRMT|/Q 提示行动/安静模式。
FDISK /PARTN 将分区表信息保存到PARTSAV.FIL中。
FDISK /ACTOK 用于MS-DOS 7.x中,跳过完整性测试。
FDISK /FPRMT 用于MS-DOS 7.x中,自动采用FAT32,并跳过提示信息。
DOSKEY /APPEDIT 使DOSKEY也应用于其它程序(如DEBUG等)中。
DOSKEY /COMMAND和/PERMANENT和/SCRSIZE和/XHISTORY 用法未知。
SCANDISK /CLIP 用于MS-DOS 7.x中,将长文件名剪为短文件名。
SCANDISK /NOLOST 用于MS-DOS 7.x中,不提示表面测试或丢失簇。
SCANDISK /NOUI和/TEXT 用于MS-DOS 7.x中,使用标准的DOS界面。
SCANDISK /MOUNT 相当于SCANDISK.INI中的Mount=Always。
SCANDISK /TIME 相当于SCANDISK.INI中的ScanTimeOut=On。
QBASIC /QHELP 进入DOS的全屏幕帮助系统,相当于执行HELP命令。
QBASIC /EDCOM 进入DOS的文件编辑器,相当于执行EDIT命令。
MEM /A或MEM /ALL 显示HMA信息。
VER /R 显示扩展的版本信息。
DIR /Z 用于MS-DOS 7.x中,表示不显示长文件名。
DEVICE=HIMEM.SYS /Q 当HIMEM.SYS加载时使用安静模式。
DEVICE=EMM386.EXE NOTR 不要检测Token Ring网络适配器。
DOS未公开用法:
IF EXIST XMSXXXX0 ... 此命令可以判断当前是否安装了XMS内存管理器(通常是HIMEM.SYS)。 注意: 是XMSXXXX0,而不是有些文章中提到的错误的XMMXXXX0.
IF EXIST EMMXXXX0 ... 此命令则用来判断当前是否安装了EMS内存管理器(通常是EMM386.EXE)。
:: 此符号可在批处理文件中代替REM注解命令,可以加快运行速度。
MS-DOS到6.22版为止,依然保留着很多未公开的命令和参数。下面对这些命令和参数作一介绍。
1.TRUENAME
在使用SUBST、JOIN命令或在网络上将物理盘映射为逻辑盘的情况下,用于显示文件与目录的实际物理位置。
2.FDISK/MBR
重写硬盘主引导记录。注意:如果硬盘分区超过四个,不能用此命令,因储存额外分区信息的区域,会被FDISK/MBR覆盖。(初学者千万不要用)
3.SHELL=C:\COMMAND.COM/P/F
加上/F参数后,提示“Abort,Retry,Fail”出错信息时,将以Fail作为默认选项。
4.COMMAND/F
在命令行执行时,使Fail作为“Abort,Retry,Ignore,Fail”出错信息提示的默认选项,直至重新启动。在其它专用DOS外壳(如NDOS、4DOS等)或应用程序(如PCTOOLS、CCED等) 的DOS外壳中执行此命令后,将返回并停留在MS-DOS外壳,须执行EXIT才能回到第二外壳。
5.COMMAND/P
在命令行执行时,重新运行AUTOEXEC.BAT。如在其它DOS外壳中执行此命令,会回到MS-DOS外壳而不能重新返回第二外壳。
6.COMMAND/D
在命令行执行时,阻止运行自动批处理文件。在其它DOS外壳中运行的情况,与COMMAND/F相同,但不将Fail设为默认选项。
7.VER/R
显示更多信息。例如,执行VER,显示“MS-DOS Version 6.22”,加参数/R后,则显示:MS-DOS Version 6.22 Revision A DOS is in HMA
8.FORMAT/AUTOTEST
自动检查磁盘格式,然后完成格式化全过程,再回到DOS提示符。
9.FORMAT/BACKUP
除提示用户输入卷标外,与上面相同。
10.FORMAT/SELECT
只在磁盘上备份系统区数据,相当于执行MIRROR程序,不进行格式化。
11.FORMAT/SELECT/U
不进行格式化,只将引导区和文件分配表用F6H填之。虽不触动根目录区与数据区,但磁盘因此不可访问。这似乎是为防止数据泄密提供一个应急手段。(初学者千万不要用)
12.IF EXIST EMMXXXXO
命令名用于批文件,可检测内存中是否有EMM386.EXE。命令语句举例:“if not exist EMMXX XXO echo EMM386.EXE is not installed!”。
13.IF EXIST XMMXXXXO
命令名可在批文件中检测内存中是否装有HIMEM.SYS。命令行可以是:“if not exist XMMXXX XO echo HIMEM.SYS is not in memory!”。
14.COPY . A:
用“.”来代替“*.*”,也可用于DEL等命令。
15.INSTALLHIGH
有些设备驱动程序需在CONFIG.SYS中用INSTALL语句安装,只能装入常规内存,而且用MEMMAKER优化内存时,并不对INSTALL语句进行处理。可改用INSTALLHIGH将这类设备驱动程 序装入上位内存,例:INSTALLHIGH=C:\DOS\SHARE.EXE。
16.用“:”来代替“REM”
在DOS执行批文件时,碰到“REM”语句时,先将全句读入,然后再根据句首是否有REM,决定处理方法;而碰到以“:”开始的标号,只要第二个字符不是字母或数字,即视为无效标号而立刻跳到下一行。因此,可用“:”加一空格来引导注释行,以增加批文件执行速度。
以上是MS-DOS中的未公开命令与参数,其中有些是非常实用的,大家不妨一试。