从学批处理到现在有些日子了,学到了不少东西,不敢说自己有多牛,但是常用的还是能手到擒来,看已总结了一些东西,今天查资料的时候发现了一些更好的技巧,加上自己的总结一起分享出来。
1、*.*的简写
*.*可以用.代替,例如,删除当前目录中的全部文件∶
DEL.
2、返回父目录即上级目录
CD..
3、把目录文件的列表存入文本文件中
DIR>filename
4、查看当前目录下任何属性的文件
方法一∶DIR,
方法二∶DIR/A
5、取消当前目录下所有文件的所有属性(实际上只能查看属性而不能取消-jm注)
ATTRIB,
若在C盘根目录下执行此命令,再用DIR来查看,可以看到IO.SYS、MSDOS.SYS等隐含文件
6、显示当前目录下的所有子目录名
DIR/AD
7、连续显示多个文件的内容
COPY *.* CON
8、分屏显示文件内容
方法一∶MORE<filename
方法二∶TYPE filename|more
9、改变磁盘文件的注册时间
方法一∶COPY filename+NUL
方法二∶COPY filename+,,
10、如何屏蔽DOS行的输出信息?
方法是将屏幕输出重定向到DOS空设备NUL,例如∶
COPY MYPROG.EXE A:>NUL
11、在DOS状态下直接显示用D方式编辑的WPS文件内容
COPY filename.wps CON/B
12、向文本文件中追加数据
方法一∶COPY filename+CON
方法二∶TYPE CON>>filename
输入完毕后按F6或Ctrl+Z键结束。
13、键盘指法练习或汉字输入练习的简易屏幕
COPY CON NUL
14、直接打印键盘输入的内容
方法一∶COPY CON PRN
方法二∶MORE>PRN
方法三∶SORT>PRN
输入完毕后按F6或Ctrl+Z键。
15、DOS下直接编辑生成文件
在没有任何编辑软件(如EDLIN、EDIT等)的情况下,可临时用以下六种方法从键盘编辑生成文件,当文件内容输入完毕后,按F6键或按Ctrl+Z键存盘退出∶
方法一∶COPY CON filename
方法二∶TYPE CON>filename
方法三∶MORE>filename
方法四∶SORT>filename
方法五∶FIND"XXX"/V/N>filename
方法六∶SORT|FIND"XXX"/V/N>filename
方法四、五、六均有特殊用处,读者不妨一试。
16、零字节文件的生成
方法∶TYPE NUL>filename
上述方法常用于处理需保密的磁盘文件,起到删除文件内容的作用,内容被删除后一般不可恢复。
17、对零字节文件的拷贝,不能用COPY命令,只能用XCOPY命令。
例如∶XCOPY filename1 filename2
18、目录中的所有文件和子目录的复制
XCOPY 目录名.驱动器号:/S
19、如何正确使用COPY 和XCOPY命令?
●将若干个文件联结成一个文件时,应使用COPY命令。
●拷贝小于64KB的单个文件,使用COPY命令。拷贝大于64KB的文件,应使用XCOPY命令。
●拷贝多个文件应使用XCOPY命令。
●拷贝子目录中的内容,应使用XCOPY/S命令。拷贝一批文件到软盘,应使用XCOPY/M命令。
20、什么时候用XCOPY命令的/D开关项?
有时候需要从某个目录中"选出"从某一天开始建立或修改过的文件,并将它们备份,此时可使用XCOPY/D命令。例如,下述命令可以把C∶目录下那些在1996年7月1日以后建立或修改过的文件拷贝到A盘∶
XCOPY C:*.* A:/D:07-01-96
21、单软驱复制软盘
有的PC机只装有一个软驱,这个驱动器既当A盘又当B盘使用,如果要在这样的系统上进行软盘复制,使用下述的XCOPY 命令∶
XCOPY A: B:
22.整理软盘中碎块,提高使用效率
一张软盘经过多次建立和删除文件操作后,某些文件记录会以不连续的形式存放在软盘空间中,造成软盘空间产生许多碎块,影响软盘的读写操作性能,严重时可导致读写故障。
解决以上问题可使用COPY命令进行整盘拷贝,则新盘上的文件保持连续存放。
23.将多个文件连续拷入多张软盘。
首先,用ATTRIB命令设置每一文件的文档特性∶
ATTRIB+A *.*/S
然后使用XCOPY命令,在软盘装满后插入新盘,根据文档特性决定哪些文件需要拷贝,哪些不拷。
XCOPY *.* A∶/S/M/W
24.使用TYPE命令"拷贝"文件
拷贝文件通常使用COPY命令或XCOPY命令,其实,TYPE也有"拷贝"文件的用途∶
TYPE filenamel>filename2
这种方法对于拷贝隐含文件非常有效。例如∶TYPE IO.SYS>A∶IO.SYS
25.以小写方式显示文件或目录
DIR/L
26.只显示文件名与子目录名,不显示文件大小和生成时间等信息
DIR/B
27.使DIR总是按文件名的字母顺序来显示文件
在AUTOEXEC BAT中加入下述命令即可∶
SET DIRCMD=/O
28.列当天创建的文件目录
若想知道当天(如1996年10月21日)建立了多少文件,可用下述命令列出∶
DIR|FIND"10 21 1996"
29.若不希望别人使用DIR命令进行目录文件列表,有什么方法呢?
方法一∶DOSKEY DIR=You can not use DIR!
方法二∶在AUTOEXEC BAT中加入命令行∶SET DIRCMD=0
此命令的功能是在用DIR命令来显示文件时,只显示"File not found",能起到暂时保密的作用。若想显示文件及目录,只有指定具体的文件名或路径。
方法三∶SET DIRCMD=DIR>NUL
此命令执行后再使用DIR命令,将输出没有文件的信息,也颇具迷惑性。
30.出所有目录中的文件
CHKDSK/V|MORE
31.如何在有多级目录的磁盘上查找文件
方法一∶CHKDSK/V|FIND"文件名"其中文件名必须用大写字母。
方法二∶DIR/S文件名
32.实时控制打印机的换行或换页
ECHO+>PRN(换行)
ECHO^L>PRN(换页)
33.使计算机在DOS命令行发出声音
ECHO ^G
34.DOS命令提问的自动响应
例如∶
ECHO Y|DEL C∶
ECHO N|CHKDSK C∶/F
35.使ECHO命令显示空行
ECHO命令后直接跟空格字符时,ECHO将显示当前的信息回显状态(ON或OFF),而不直接向屏幕回显空行。其实,下面一些非常简单的命令格式都能使ECHO命令显示空行∶
ECHO ECHO, ECHO; ECHO+
ECHO[ ECHO] ECHO/ ECHO\par
36.用ECHO命令向交互式DOS命令馈送回车符
例如∶
ECHO+|DATE|FIND"Current date"
ECHO+|TIME|FIND"Current time"
此技巧可用于AUTOEXEC.BAT中,使每次开机后直接显示当前日期和时间信息,不必按回车键就能继续下去。
37.开机时间黑匣子
有时需要记录每次使用计算机的日期和时间,以便加强用机管理。可以利用上述技巧,只须在AUTOEXEC.BAT文件中加入下列命令∶
ECHO+|DATE>>ABC
ECHO+|TIME>>ABC
这样在每次启动计算机后,文件ABC中就自动记录了日期和时间,执行命令TYPE ABC即可查看以往开机日期和时间。
38.自动统计命令或文件的运行时间
下面给出一个计时器TIMETEST.BAT,实现了自动统计命令或文件的运行时间∶
@ECHO OFF
TIME 0
COMMAND /C %1 %2 %3 %4
ECHO %1 %2 %3 %4运行时间为∶
ECHO+|TIME|FIND"time is"
@ECHO ON
例如,测试AUTOEXEC.BAT运行时间∶
C>TIMETEST AUTOEXEC.BAT ┆
AUTOEXEC.BAT运行时间为∶
Current time is 0∶00∶03 49
说明AUTOEXEC.BAT运行了3.49秒。
39.跳过或单步执行CONFIG.SYS和AUTOEXEC.BAT文件
方法一∶启动计算机,屏幕出现Starting MS-DOS…时,按F5键或SHIFT键,DOS便会跳过CONFIG.SYS和AUTOEXEC.BAT两文件,用系统运行的基本环境配置来启动机器。
方法二∶当出现上面的提示后,按F8键,并通过键盘逐一回答Y或N来选择执行命令。
方法三∶在CONFIG.SYS文件的命令中加上"?"号。如DOS?=UMS,这样在执行到该条命令时,便会出现[Y,N]?的选择提示,让你选择是否装入该命令。
40.能否省去DOS启动时等待按F8或F5的两秒时间?
能。方法是在CONFIG SYS文件的头部加上语句SWITCHES=/F,此后同样可以实现以前的功能,方法是在未出现"Starting MS-DOS…"时就按下F8或F5键。
41.单步执行批处理文件
COMMAND/Y/C(批处理文件名)
开关/Y告诉DOS在执行每一行前暂停,提示[Y,N]?询问用户是否执行。
42.快速获取DOS命令的帮助信息
方法一∶FAST HELP 命令名
方法二∶命令名/?
方法三∶命令名/H
43.方便地更改子目录名
以下MOVE命令能将C∶目录改名为C∶∶
MOVE C∶ C∶
44.什么时候使用MOVE命令移动文件?
MOVE命令的最大特点是可以在一个命令行里列出多个要移的文件,文件之间可用","号相隔。例如,将当前目录中所有可执行文件均移进目录中∶
MOVE *.COM,*.EXE,*.BAT
45.用MOVE命令对子目录进行简单加密或解密
加密∶如将C∶目录利用半个汉字进行简单加密,可执行命令∶
MOVE C∶ C(半个汉字字符)
解密∶反之,可用MOVE命令结合通配符*或?,将不可识别的目录名改成其它名字,达到解密目的。
46.快速进入深层子目录
可用SUBST命令设置驱动器标识符,取代深层次子目录路径,使得进入深层次子目录十分方便。例如,下述命令可以将子目录C∶模拟成M盘∶
SUBST M∶ C∶
这样,在任何目录下,只要将当前驱动器变成M,即可进入PRG子目录。
47.如何取消SUBST设置的盘符?
例如,要取消上例中的M盘,只须执行命令SUBST M∶/D即可。
48.建立并进入新目录的MD命令
DOS中的MD命令只能建立子目录,建好后再用CD命令进入,其实可以用∶
DOSKEY MD=MD $1 $T CD $1
对MD命令进行重新定义,此后使用MD时,建立目录和进入目录同步完成。
49.排除法文件列表
DIR命令中支持通配符*和?来代替其它字符,但却没有提供相应的排除字符的功能,而利用FIND命令中的/V参数,则能方便地实现排除法列表。下述命令能将除去.BAK文件和子目录以外的所有文件列出∶
DIR|FIND/V"BAK"|FIND/V"<DIR>"
50.>和>>的区别
DIR>DIRLIST∶如果DIRLIST文件存在,将清除其文件内容,并将新内容输入文件中。
DIR>>DIRLIST∶如果DIRLIST文件存在,将输出数据附加到这个文件末尾。
在DIRLIST文件不存在时,两者是等价的。
51.快速添加搜索路径
PATH=%PATH%;%1
52.对数据文件及由字处理程序生成的文本文件等不可执行文件,建立自动搜索路径。
APPEND命令能将一组指定的目录添加进当前目录的逻辑扩展,从而不用指定路径就能打开这组文件。APPEND后可以放多个目录,只要用";"隔开即可,例如∶
APPEND C∶;C∶;C∶;C∶;
53.将目录名隐藏起来
由于ATTRIB命令可改变一个目录的属性,所以利用该命令可将目录名隐藏起来。例如,将目录C∶隐藏起来∶
ATTRIB +H C∶
54.快速删除目录树
用DELTREE命令可快速地删除指定目录,而不管目录中有多少子目录和目录及文件为何种属性。例如∶DELTREE C∶
55.防止误删除文件
DEL命令是一个危险的命令,可以用下述命令对其进行重新定义,使得在删除文件时有确认提示∶
DOSKEY DEL=DEL $1/P
56.如果误删除了某些文件,有什么办法及时地将它们恢复?
UNDELETE命令可以用来恢复删除文件,以下命令能将当前目录中的被删文件恢复出来∶
UNDELETE *.*/ALL
此命令恢复出来的文件名的第一个字符变成了#,可用REN命令更改成原来的文件名。
57.删除多个文件名无共同特征的文件时,由于难用通配符,只能逐个删除,比较麻烦。有没有其他方便的方法?
有。使用DEL *.*/P命令,系统会逐个列出指定目录的所有文件,询问用户是否删除,对欲删除文件回答Y,否则回答N。
58.加密文件名一法
在要加密的文件名最后加上ASCII字符255。方法是输入文件名后按下ALT键,然后输入255。这样,用DIR命令列出该文件时,并不显示这个字符,即从文件名看不出发生了任何变化,起到了一定的加密作用。
59.回忆用过的命令
执行DOSKEY命令后,用户所输入的命令便被存储起来,以后若要回忆使用过的命令,可随时用"↑"或"↓"键进行前后逐条查找。
60.禁止非法访问某个驱动器
在AUTOEXEC.BAT文件中加入下述两条命令,可以禁止非法访问D盘,当输入D∶时,屏幕即关闭,只有知道密码ZM的人才能进入D盘∶
DOSKEY D∶=ECHO OFF
DOSKEY ZM=D∶
61.防止别人误将C盘格式化
为了保护C盘,防止别人格式化,可用DOSKEY对FORMAT命令进行重新定义,例如∶
DOSDEY FORMAT=You can not format C∶!
这样,别人在使用FORMAT时将出现Yor can not format C∶!的提示,从而使C盘得到保护。若自己想用FORMAT时,再用如下命令恢复∶
DOSKEY FORMAT=
62.检查屏幕状态,获得有关屏幕显示字符和行数的报告
MODE CON
63.设置屏幕每行显示字符数和每屏的行数
例如∶
MODE CON COLS=80 LINES=25
64.提高键盘的响应速度
MODE CON∶RATE=32 DELAY=1
65.不喜欢系统启动时Num Lock键的缺省设置怎么办?
在CONFIG SYS文件中加进NUMLOCK命令,根据你的爱好指定系统启动时NUMLOCK键的状态∶
NUMLOCK=ON(或OFF)
66.简单的键盘锁
在你使用计算机时,如果只离开一会,又不想关机,为了不让别人随意使用,可编制一个简单的键盘锁LOCK BAT程序(内容如下)∶
@ECHO OFF
CLS
CHOICE/C:*/N
运行之后,形同死机,"*"号就是键盘锁的钥匙,不知道的人无法破译。
67.文件的选择显示
假设有MY1 TXT、MY2 TXT、…、MY10.TXT共10个文件,现欲显示其中的MY2.TXT、MY3.TXT、MY6.TXT和MY9.TXT 4个文件,可用如下命令很方便地实现∶
FOR %A IN(2369)DO TYPE MY%A.TXT
68.删除误拷贝文件
当用COPY A∶*.*命令把A盘上所有文件拷贝到硬盘某子目录下时,却不慎误拷贝到硬盘根目录下,如误拷贝的文件数量很多,且文件名没有任何特征,这时如要删除这些文件,通常做法是用PCTOOLS工具软件进行选择删除,比较麻烦。使用FOR命令就简单多了∶
A>FOR %A IN(*.*)DO DEL C∶%A
69.由于FIND命令不能接受通配符,若希望在若干个文本文件中寻找含有某个字符串插,就只能对每个文件依次使用FIND命令,显然很费功夫,没有捷径吗?
有。使用FOR命令与FIND命令配合,格式为∶
FOR%A IN(文件组)DO FIND"string"%A
70.FOR命令不能嵌套,有没有办法实现FOR循环嵌套呢?
有。可以把COMMAND.COM作为第一层循环里的命令,让它再执行一个FOR循环命令。例如,下述命令可以在屏幕上显示12行"Welcome you":FOR %A IN(123)DO COMMAND/C FOR %B IN(1234)DO ECHO Welcome you
71.双冒号∶∶在注释行中的作用
在DOS批处理文件开头,经常使用REM注释命令加一个程序头。例如,假设有一个名为TEST.BAT的批处理文件,它以一个文本文件名为输入参数,若在开头说明其用法时,使用了一个采用<和>和括号的注释行,即∶
REM TEST<filename>
程序执行此命令时,DOS将显示"File not found"信息,因为它以为filename是一个重定向输入操作的源文件,它在当前目录中找不到。如何解决这个问题?
很简单,只须将REM改为双冒号"∶∶",即∶
∶∶TEST<filename>
72.批处理中的IF ERRORLEVEL
在批处理文件里使用IF ERRORLEVEL命令时要小心,因为DOS认为任何大于或等于设定值的出口状态值都是等效的。通常应按从大到小的次序测试出口状态值,例如∶
IF ERRORLEVEL 2 ECHO TWO
IF ERRORLEVEL 1 ECHO ONE
IF ERRORLEVEL 0 ECHO ZERO
73.能不能按从小到大的次序测试出口状态值?
能。但应结合IF NOT的形式进行判断,例如72例中的命令应改为∶
IF ERRORLEVEL 0 IF NOT ERRORLEVEL 1 ECHO ZERO
IF ERRORLEVEL 1 IF NOT ERRORLEVEL 2 ECHO ONE
IF ERRORLEVEL 2 IF NOT ERRORLEVEL 3 ECHO TWO
74.批处理文件中使用@符禁止命令显示在屏幕上
由于DOS是在各个命令执行前就将它们显示到屏幕上的,因此,即使你将ECHO命令置为OFF,它本身也会出现在屏幕上。要抑制它的显示,可在ECHO命令行前加@符∶@ ECHO OFF
75.统计源程序的行数
假设源程序名为ZM.PRG,下述FIND命令可方便地统计它共有多少行∶
FIND/V/C" "ZM.PRG
76.对文本文件进行排序
SORT命令常用来对一些基于文本行的文件进行排序显示。例如,按姓名的开头字母显示一个含有电话号码的清单文件。命令格式∶
SORT[/R][/+n]<filename1>filename2
其中,/R表示反向排序,/+n表示从第几行开始排序,filename1为源文件名,filename2为排序后的文件名。
77.用PROMPT设置有意义的提示符
PROMPT命令用于设置新的DOS系统提示符。例如∶
PROMPT $P$G 取当前驱动器名及目录作为提示符
PROMPT $D$G 取当前系统日期作为提示符。
78.如何设定屏幕颜色?
假设ANSI.SYS已被安装在内存中,以下命令可把屏幕设置成白底红字∶
PROMPT $E[31;47m
79.在屏幕上选定的位置显示日期和时间信息
把ANSI SYS的屏幕和光标控制功能与PROMPT的设定DOS命令提示符功能结合起来,可以在屏幕上选定的位置显示特殊的信息。例如,在AUTOEXEC BAT中加入下述命令行,可将日期和时间信息移到屏幕的右下方∶
PROMPT $E[S $E[25;52H $D$T $E[u $P$G
80.用F2键编辑上次命令
用F1或F3功能键可复制上次命令,类似地F2键能得到部分上次命令,当按下F2键时,DOS就将上次命令内容拷贝到按F2键后键入的字符(不含)为止。
例如,键入了以下命令∶
C>DIR.COM<enter>
按F2键及M键,可以得到∶
C>DIR
这时再按INS插入键,输入R,再按F3键复制上次命令剩余部分,得到正确的命令∶
C>DIR.COM
81、用F4键编辑上次命令
当按下F4键时,DOS从按F4键后按的字母开始复制上次命令。例如,上次命令为∶
C>DIR[enter]
按下F4键,再输入F,然后再按F3,DOS就会显示FORMAT命令∶
C>FORMAT
82、用SHELL命令改变环境空间的大小
将环境变量空间增加到1KB,可在CONFIG.SYS文件中加进命令行∶
SHELL=C∶.COM/P/E∶1024
83、在批处理文件中引用环境变量
批处理文件可以引用系统上已定义的环境变量。具体方法是在环境变量名的前后各放一个百分号"%"。例如,要在批处理文件中显示环境变量PATH的内容,可加进命令行∶
ECHO %PATH%
84、查看单个环境变量
如果你经常使用环境变量,当用SET命令显示当前所有已分配的环境变量时,列表就可能很长,屏幕可能很杂乱。为方便起见,可用下面的批处理文件VIEWENV.BAT在命令行直接显示单个环境变量∶
SET|FIND/I "%1"
例如,要察看COMSPEC的内容,只须执行∶
VIEWENV COMSPEC
85、制作DOS系统盘
方法一∶FORMAT A∶/S
方法二∶SYS A∶
86、定期整理硬盘
具体步骤∶
·删除硬盘中不必要的文件
·运行CHKDSK/F
·运行DEFRAG
87、了解内存的类型
·常规内存∶0~640KB
·上位内存区(UMA)∶640KB~1MB
·扩展内存∶自1MB起向上延伸
·高内存区(HMA)∶1MB以上的稍小于64KB的扩展内存区
·扩充内存
88、将DOS移到高内存区
为使用户有较大的可用基本内存,可以在CONFIG.SYS文件中加入下述命令,加载HIMEM.SYS,将DOS移入高内存区(HMA)∶
DEVICE=C∶.SYS
DOS=HIGH
89、将设备驱动程序和内存驻留程序装入上位内存(UMB)
在CONFIG.SYS文件中加进命令∶
DEVICE=C∶.EXE NOEMS
DOS=UMB
90、将程序装入高内存区
将程序装入HMA的方法是在命令行上加一个/U开关,例如∶
MOUSE/U
91、上位内存的使用
为将程序驻留上位内存,使用LOADHIGH(或LH)<程序名>即或,例如∶
LH MOUSE
92、如何显示某个特定程序占用内存的情况?
MEM/M module
其中,module表示特定程序文件名,不要带扩展名。
93、使用Memmaker自动优化内存
执行MEMMAKER/BATCH命令,MEMMAKER就自动为CONFIG.SYS和AUTOEXEC.BAT文件做最优的设置,此后,执行MEM/C/P来观察内存的分配情况,你会发现主存变大了。
94、若不满意MEMMAKER的优化设置,应该怎么办?
很简单,只须执行MEMMAKER/UNDO即可恢复你原来的配置。
95、磁盘高速缓冲存储器SMARTDRV的使用
为建立一个具有256K(默认值)的磁盘高速缓存,可在AUTOEXEC.BAT文件中加入命令行∶
C∶
由于SMARTDRV是建立在扩展内存中,所以还必须在CONFIG.SYS文件中加入命令行∶
DEVICE=C∶.SYS
96、当你关闭计算机或重新启动时,希望确定所有在高速缓存的信息均已写入硬盘时,应在系统提示符下键入命令∶
SMARTDRV/C
97、跳过SCANDISK的磁介质扫描
运行SCANDISK时,磁介质扫描要消耗很长时间,其实,使用SCANDISK/CHECKONLY便可跳过它。
98、LOADFIX命令的正确使用
在优化过程中,有少数程序不能在640KB常规内存的低64KB内正确运行。此时,可使用LOADFIX命令让可执行程序(如ZMPROG.EXE)在低64KB以上的内存中运行,方法是在要运行的应用程序前加上LOADFIX∶
LOADFIX ZMPROG
99、何时使用虚拟盘(也称RAM盘)?
RAM盘能显着提高磁盘文件的存取速度,但它在断电或重启动时会丢失数据。因此,使用RAM盘时要特别小心。在没有硬盘的系统上,RAM盘值得一用;在需要存放较大的临时文件或复制程序时,也可以使用;当你的系统上配有CD-ROM时,在开始工作前,可将CD-ROM盘上的文件与数据复制进RAM盘,能够显着提高效率。
100、虚拟盘的安装
DOS提供的RAMDRIVE.SYS是一个虚拟盘驱动程序,你可以将它安装进内存,让它使用扩展内存或扩充内存,生成指定大小的RAM盘。例如,在CONFIG.SYS中加进下述命令,可在扩展内存中生成一个1MB的RAM盘∶
DEVICE=C∶.SYS 1024/E
本文转自sucre03 51CTO博客,原文链接:http://blog.51cto.com/sucre/419299,如需转载请自行联系原作者