第一课 基本 DOS 命令集详细解说 edit 编辑命令: ren 改名命令: type 查看命令: diskcopy 磁盘复制命令: chkdsk 磁盘查看命令: cd 改变当前目录命令: sys 制作DOS系统盘命令: copy 拷贝文件命令: del 删除文件命令: deltree 删除目录树命令: dir 查看命令: format 格式化磁盘命令: md 建立目录命令: mem 查看内存状况命令: rd 删除目录命令: cls 清屏命令: move 移动文件与改目录名: more 分屏显示命令: xcopy 拷贝目录和文件命令: 适用场合:在进行连同子目录一起拷贝时很有用,在拷贝大量文件时比COPY命令要快得多 . attrib 设置文件属性命令: date 显示及修改日期命令: lable 设置卷标号命令: defrag 磁盘碎片整理命令: doskey 调用和建立DOS宏命令命令: fdisk 硬盘分区命令: emm386 扩展内存管理命令: memmaker 内存优化管理命令: msd 系统检测命令: undelete 恢复被删除的文件命令: prompt 设置提示符命令: restore 恢复已备份的文件命令: [用法] restore [备份盘符] [目标盘符] time 显示及修改时间命令: set 设置环境变量命令: smartdrv 设置磁盘加速器命令: append 设置非执行文件的路径命令: debug 程序调试命令: diskcomp 比较磁盘命令: expand 解压工具命令: fc 文件比较命令: subst 路径替换命令: [这个贴子最后由xzf在 2005/08/31 00:21pm 第 4 次编辑] 前 言 注:未经同意, 不准转贴, 谢谢合作! QQ 群号: 11175590 第二课 基本 DOS 批处理详细解说 echo 表示显示此命令后的字符 二、if 、goto 、choice 、for 是批处理文件中比较高级的命令,如果这几个你用 if 表示将判断是否符合规定的条件,从而决定执行不同的命令。 有三种格式: 2、if exist 文件名 待执行的命令 3、if errorlevel 数字 待执行的命令 goto 批处理文件运行到这里将跳到goto 所指定的标号处,一般与 if 配合使用。 :end : 这是标号字符(所在位是冒号),是用来执行被 goto 跳转所用的标号字符, choice 使用此命令可以让用户输入一个字符,从而运行不同的命令。使用时应该 如: choice /c:dme defrag,mem,end 例如,test.bat的内容如下: :defrag :mem :end 此文件运行后,将显示 defrag,mem,end[D,M,E]? 用户可选择d m e , for 循环命令,只要条件符合,它将多次执行同一命令。 格式FOR [%%f] in (集合) DO [命令] 如果一条批处理文件中有一行: device和devicehigh himem.sys和emm386.exe himem.sys 负责管理扩展内存。 emm386.exe 负责管理高端内存并在扩展内存中模拟扩充内存供某些软件使用。 为了使用更多的内存,配置文件中应有: 注意:EMM386.exe 要求先安装 himem.sys,因而必须确保 dos=high,umb 这两个参数也可以分开写成两条语句,即: 应在config.sys中加入这条命令,这样会将DOS的系统文件移入高端 lastdriver lastdriver 规定用户可以访问的最大驱动器符数目,也就是DOS所能 :: 二个冒号,它和批处理文件中的 rem 含义相同,即注释 ramdrive.sys 虚拟磁盘文件。 %CDROM% %CDROM%是光驱盘符的变量字符串,用它可以把所在的任意光驱盘符替为 %RAMD% %RAMD%是随机虚拟磁盘, 此盘创建在扩展内存中, 建立此盘的模块就是
path 指向路径命令:
path=c:\dos;c:\windows;c:\ 这条命令就是说,当我们执行一个文件时,
电脑先在当前目录下查找这个文件,找到则执行,如果没有找到,则电脑按照
path命令所指定的目录顺序去查找,先在C盘dos目录下,然后在windows目录
下,最后在C盘根目录下寻找这个文件
edit w.bat回车(就是编辑 w.bat文件的意思)
例如把abc.txt改成bne.dat,就可以输入ren abc.txt bne.dat。
我想知道abc.txt文件的内容,就从键盘上输入type abc.txt 。
diskcopy命令的格式很简单:diskcopy 源驱动器名 目的驱动器名。举个例子来
说,如果要在A驱动器上复制磁盘,就输入:diskcopy a: a: (奇怪吧,哪来两
个A盘,且看下文电脑是如何理解的)。
就输入chkdsk C:
用法,就输入cd abc
用法,就输入sys a:
用法,就输入copy c:\abc.txt a:\
用法,就输入 del c:\abc.txt
用法,就输入 deltree c:\abc
用法,就输入 dir 如:
用法1、dir /w
用法2、dir /p
用法3、dir /w/p
用法1,就输入format a:(完全格式化不带任何信息)
用法2,就输入format a:/q(快速格式化不带任何信息)
用法3,就输入format a:/s(完全格式化并写入DOS启动主文件)
用法4,就输入format a:/q/s(快速格式化并写入DOS启动主文件)
用法,就输入md abc
用法,就输入mem
用法,就输入rd abc
用法,就输入cls
适用场合:屏幕上太乱了,或是屏幕上出现乱码了, 清除屏幕上显示内容但不影响
电脑内部任何信息.
用法,就输入c:\>move c:\autoexec.bat c:\old (移动autoexec.bat文件至old目录下)
用法,就输入c:\>move c:\config.sys c:\temp (移动config.sys文件至temp目录下)
用法,就输入C:\>type msdos.w40 | more
适用场合:当输出很多一屏显示不下时采用,几乎适合所有命令,尤其是type等命令
时很有用。 使用more时磁盘不能有写保护,也不适合光驱。
用法,就输入xcopy *.* [目录] /s
用法1,就输入attrib +r abc.txt
用法2,就输入attrib +h *.* /s? 隐含所有文件
参数:
attrib +r或-r [文件名] 设置文件属性是否为只读
attrib +h或-h [文件名] 设置文件属性是否隐含
attrib +s或-s [文件名] 设置文件属性是否为系统文件
attrib +a或-a [文件名] 设置文件属性是否为归档文件
attrib /s 设置包括子目录的文件在内的文件属性
用法,就输入C:\>date 03-20-2005? 将日期改为2005年3月20日
用法,就输入label [盘符] [卷标名] 设定指定盘的卷标
例 子 C:\>label?
Volume in drive C is WANG
Volume Serial Number is 2116-1DD0
volume label (11 characters,Enter for none)?
可以输入卷标,直接回车后
Delete current volume label (Y/N)?
按y删除旧卷标,按n不更改
用法,就输入C:\>defrag
用法,就输入 doskey /reinstall 重新安装doskey
doskey /bufsize= 设置缓冲区的大小
doskey /macros 显示所有doskey宏
doskey /history 显示内存中所有命令
doskey /insert|overstrike 设置新键入的字符是否覆盖旧的字
例 子] C:\>DOSKEY?
C:\>dir
C:\>copy C:\temp\*.* a:
C:\>del c:\temp\*.*
C:\>copy b:\*.* c:\temp
C:\>doskey di=dir/w/p? 定义di为宏命令,意思是执行dir/w/p
用法,就输入fdisk后按回车即可进入提示界面
用法 lh [程序]
将程序装入高端内存 使用此命令时,config.sys文件中需有下面两条语句。
device=emm386.exe dos=umb
lh [程序] /l:区号 将程序装入指定的umb区
lh /s 一般是由memmaker专用
例子: C:\MOUSE\>lh mouse? 将鼠标驱动程序装入高端内存
用法,就输入C:\>memmaker 回车,出现提示一直回车 2. 回车继续,F3退出
用法,就输入 C:\>msd 回车后可见到实例
用法,就输入undelete
undelete /all 恢复文件且不再询问是否恢复
undelete /list 列可恢复的文件名
适用场合:当你厌烦了c:\>的提示符或者您想使您的提示符与众不同时,您可以
试一试,非常有趣的DOS命令,可以随时显示时间与日期。
[用法] prompt $p$g 以当前目录名和>号为提示符,这是最常用的提示符
prompt $t 表示时间 prompt $d 表示日期
prompt $$ 表示$ prompt $q 表示=
prompt $v 表示当前版本 prompt $l 表示<
prompt $b 表示| prompt $h 表示退位符
prompt $e 表示Esc代表的字符 prompt $_ 表示回车换行
[例子] C:\DOS>prompt wang$g? 将wang>作为提示符
WANG>prompt $t$d$g? 使用时间、日期和>号做为提示符
0:01:07.77Thu 08-29-1996>prompt $p$g?
C:\DOS>
建议:如果以前用backup做过文件备份,则当原文件损坏时可以用它来恢复
文件,将用backup命令备份的磁盘中的文件恢复到另一磁盘中,备份磁盘中
应有backup.00X和control.00X这两条文件。
将备份盘上备份文件恢复到指定盘上
restore /s 将备份文件包括子目录都恢复到指定盘上
restore /p 让用户判断是否恢复文件
restore /b:日期 恢复日期以前的文件
restore /a:日期 恢复日期之后的文件
restore /l:时间 恢复时间之前的文件
restore /e:时间 恢复时间之后的文件
restore /m 只恢复上次备份后修改过的文件
restore /n 只恢复上次备份后已删 除的文件
restore /d 只显示要恢复的文件名
[例子] C:\DOS>restore a: c:?
Insert backup diskette 01 in drive A:
Press any key to continue . . .
在A驱中放入第一张备份盘,按任意键即可,恢复完第一张后,按顺
序放入其它盘即可。
当您用上述命令不能正确恢复文件时请用:
C:\DOS>restore a: c:\ /s
用法,就输入time 即可按提示修改,不修改按回车忽略修改
用法,就输入set [环境变量]=[字符串]
例子: C:\>set path=c:\dos 与path c:\dos含义相同, 这条命令常常用在autoexec.bat中
用法,它可以提高硬盘访问速度,最好在autoexec.bat文件中加载吧。
用法: smartdrv /x
执行并驻留内存,开辟磁盘加速缓存区,并屏蔽所有驱动器缓存,是
较常用的方法(一般用这个命令就够了)
smartdrv /c 将缓存内的信息都写入硬盘
smartdrv /e: 数字 设置一次移动的信息量
smartdrv /b: 数字 设置预先读取的缓冲区大小
适用场合: 当您无法在多个目录中寻找到自己输入的文稿时,可以试一试这
个命令,用法类似path。
用法: append [路径];[路径]
例子: C:\>append c:\test?
设置寻找非可执行文件路径为c:\test如果该目录下有文件1.txt时,
在其它目录下调用1.txt找不到时,可自动寻找到c:\test目录。
D:\UCDOS>edit 1.txt 可找到C:\test\1.txt文件
如果你学过汇编语言,那你应该会使用debug,如果没学过,最好别使用.
用法 debug [文件名]
适用场合: 比较两张盘是否相同,没想到什么时候会用到,在比较用
diskcopy拷贝的两张盘,为什么不用diskcopy/v校验呢?
[用法]diskcomp [盘符1] [盘符2] 比较盘1和盘2
diskcomp /1 只比较磁盘的第一面
diskcomp /8 只比较没磁道的前8个扇区
[例子]C:\>diskcomp a: a:
在同一软驱中比较两张盘
Insert FIRST diskette in drive A:
放入第一张盘
Press any key to continue . . .
Comparing 80 tracks 18 sectors per track, 2 side(s)
Insert SECOND diskette in drive A:
放入第二张盘
Press any key to continue . . . Compare OK
比较未发现不同
Compare another diskette (Y/N) ?n
是否比较其它盘,选y继续比较,选n停
微软公司软件原始安装盘中有许多后缀以"_"结尾的压缩文件,可以用它解压,
解除您因为少数几个文件丢失造成的麻烦。(Windows下用Winrar就可以解压)
用法,C:\>expand a:vsafe.co_ c:\dos\vsafe.com
fasthelp 快速显示帮助信息命令:
用法,在DOS下输入abc.exe /fasthelp 同/?
用法,就输入fc[文件名1][文件名2]比较两文件的不同参数还有: a c l Lbn n t w nnnn
用法 subst 显示当前的替代路径
subst [盘符] [路径]
将指定的路径替代盘符,该路径将作为驱动器使用
subst /b 解除替代
[例子]C:\DOS>subst a: c:\temp? 用c盘temp目录替代a盘
C:\>subst a: /d? 解除替代
在这篇里解说的是批处理中所常要用到的一些命令和作用, 请仔细阅读, 配合上一篇的解说, 记住这些命令和作用, 你就能够明白 DOS 的工作原理了, 也就能修改自己所需要用的功能了, 这篇就写到这里。
一、echo、@、call、pause、rem 是批处理文件最常用的几个命令,我们就从他们
开始学起
echo off 表示在此语句后所有运行的命令都不显示命令行本身
@ 与echo off相象,但它是加在其它命令行的最前面,表示运行时
不显示命令行本身。
call 调用另一条批处理文件(如果直接调用别的批处理文件 ,执行完
那条文件后将无法执行当前文件后续命令)
pause 运行此句会暂停,显示 Press any key to continue... 等待用户
按任意键后继续
rem 表示此命令后的字符为解释行,不执行,只是给自己今后查找用的
得很熟练,你就是批处理文件的专家啦。
1、if "参数" == "字符串" 待执行的命令
参数如果等于指定的字符串,则条件成立,运行命令,否则运行下一句。
(注意是两个等号)
如:if "%1"=="a" format a:
如果有指定的文件,则条件成立,运行命令,否则运行下一句。
如:if exist config.sys edit config.sys
如果返回码等于指定的数字,则条件成立,运行命令,否则运行下一句。
如if errorlevel 2 goto x2 DOS程序运行时都会返回一个数字给DOS,
称为错误码errorlevel或称返回码
如:
goto end
echo this is the end
标号所在行是不会被执行,如:
:end 等等...
加/c:参数,c:后应写提示可输入的字符,之间无空格。它的返回码为1234……
将显示
defrag,mem,end[D,M,E]?
@echo off
choice /c:dme defrag,mem,end
if errorlevel 3 goto defrag 应先判断数值最高的错误码
if errorlevel 2 goto mem
if errotlevel 1 goto end
c:\dos\defrag
goto end
mem
goto end
echo good bye
然后if语句将作出判断,d表示执行标号为defrag的程序段,m表示执行
标号为mem的程序段,e表示执行标号为end的程序段,每个程序段最后都
以goto end将程序跳到end标号处,然后程序将显示good bye,文件结束。
只要参数f在指定的集合内,则条件成立,执行命令
for %%c in (*.bat *.txt) do type %%c
含义是如果是以bat或txt结尾的文件,则显示文件的内容。
加载一些内存驻留程序,用于管理设备。比如内存管理程序和
光驱驱动程序等。
如: device=c:\dos\himem.sys
device=c:\dos\emm386.exe ram
devicehigh=c:\cdrom\cdrom.sys
DOS只能直接使用640K的内存,即基本内存,必须依靠其它内存管理程序来
使用更多的内存,这两条命令就是最常用的内存管理程序。
device=c:\dos\himem.sys
device=c:\dos\emm386.exe ram
安装 himem.sys 的配置命令在 emm386.exe 之前。
dos=high
dos=umb
内存,空出更多的基本内存给其它软件使用。 注意,如果用户没有
安装emm386.exe,umb这个参数是没有实际意义的
识别的最后的驱动器符(字母)。如果设定的驱动器符数目小于本机上
的实际驱动器数,则此lastdriver命令会被忽略掉。缺省的最大驱动
器符数目为本机的实际驱动器数目加一。
只要在 config.sys 中加入 device=ramdrive.sys 就可使用虚拟磁盘了
比如:
device=c:\dos\ramdrive.sys 1024 /e
表示在扩展内存中建立 1M 的虚拟磁盘。如果加/a参数,则表示在扩充
内存中建立虚拟磁盘。
真实盘符, 需要与光驱驱动模块一同执行,如:
LH \MSCDEX.EXE /D:mscd001 /L:%CDROM%
ramdrive.sys ,见上面的“虚拟磁盘文件”说明。
另外这个虚拟内在还有更强大的虚拟内存管理器,可以超过64MB的内存
管理,就是 XMSDSK.EXE 与 EMSDSK.EXE,