一份比较详细的DOS命令说明Word文档下载推荐.docx
- 文档编号:19925741
- 上传时间:2023-01-12
- 格式:DOCX
- 页数:37
- 大小:39.84KB
一份比较详细的DOS命令说明Word文档下载推荐.docx
《一份比较详细的DOS命令说明Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《一份比较详细的DOS命令说明Word文档下载推荐.docx(37页珍藏版)》请在冰豆网上搜索。
FOR%变量名IN(文件集)DO命令[命令参数]
以上是FOR命令的固定形式,IN和DO的位置必须正确,否则将提示语法错误。
如FOR%FIN(*.*)DOTYPE%F命令就可以实现TYPE命令一次显示多个文件。
%F是变量名,也可用%G等代替,但前后必须一致。
在批文件中用%%F代替。
GOTO:
转到批文件内部的某个标号下执行。
大家知道,在编程中往往需要重复或跳转到某个地方继续执行,如BASIC语言中的GOTO命令。
批文件中的GOTO命令也可以完成类似的功能。
GOTO[标号名]
其中,标号名是可以随意设置的,如Hello等。
设置标号用“:
”符号,如“:
Hello”,这时用GOTOHello命令将转到“:
Hello”所在的位置继续执行批文件。
IF:
条件判断命令。
这是一项很有用的批处理命令。
用法1:
IF[NOT]EXIST文件名命令[命令参数]
意义:
如果[不]存在某个文件将执行某个命令。
用法2:
IF[NOT]ERRORLEVEL错误返回代号命令[命令参数]
如果错误返回代号[不]大于或等于指定的代号将执行某个命令。
其中,ERRORLEVEL表示错误返回代号,很有用。
对于很多DOS命令,由于执行的结果不同(如执行成功,执行失败,或被用户中断等),这些命令会返回不同的代号,以表示不同的结果。
IFERRORLEVEL命令就根据这个不同结果而产生的不同代号来执行不同的命令,通常用在某条命令之后。
如IFERRORLEVEL1ECHOOK!
表示如果当前的错误返回代号大于或等于1时将在屏幕上显示“OK!
”的字样。
用法3:
IF[NOT]字符串1==字符串2命令[命令参数]
当字符串1和字符串2[不]相等的时候执行某个命令。
PAUSE:
暂停批文件的执行,并显示“按任意键继续”的字样。
REM:
添加注解。
用于增加文件可读性,将不被执行。
也可以用:
:
来代替。
SHIFT:
在批文件中改变可替换参数的位置。
可替换参数是一种特殊的参数,只能用在批文件中。
这些参数是由使用者在执行批处理命令时输入的。
比如,我们执行DIR/S/W命令,其中DIR是命令名,/S和/W是它的执行参数。
在批文件中,这些命令参数将被分别赋予到可替换参数中,如/S就成的%1,/W就可了%2,以至类推,而命令本身则被赋予%0中。
批文件就是利用可替换参数对执行时输入的参数来进行操作的。
比如现在有个批处理文件叫MYFILE.BAT,在命令行下执行MYFILE.BATYES,于是%0的值就是MYFILE.BAT,%1的值就是“YES”,可以在此批文件中用IF等命令判断出%1等参数的值,然后根据这些值的不同执行不同的操作,如IF"
%1"
=="
YES"
GOTOYES。
SHIFT命令不带任何参数,执行结果是将%0的值换成原%1的值,而原%1的值变成的原%2的值,以此类推。
注意它的不可逆转性。
因为批处理文件执行时的运行参数可能很多,可能会超过10个,而可替换参数只能从%0到%9,若想取得%9以后的参数值,只能使用SHIFT命令。
这时,整个参数列将向前推。
以上是DOS的自带批处理命令,可以看出,这些命令是非常少的,若要编写较复杂的程序,用以上的命令显然不可能实现。
这时就需要其它实用的批处理工具了,著名且实用的有TESTIF,STRING,ASET,BATCHMAN,WBAT等,均可在“DOS软件分类下载”中的“脚本工具”中下载。
在批处理文件中使用以上的工具可以实现非常强大的功能,甚至可以完成许多高级语言程序的功能。
所以,如果您想编者按写批处理文件的话,它们是您不错的选择,不仅有详细的文档,而且还在不断发展中。
下面就要谈批处理文件的制作了。
其实制作批处理文件并不难,只要掌握了方法就行了。
随着您操作次数的增多,您会觉得越来越容易的。
首先使用一个文本编辑器,如DOS自带的EDIT命令或其它的编辑工具,如PEDIT等新建一个空白文件(当然,用COPYCON命令直接创建也行),然后在其中根据您想完成的功能输入批处理命令。
如果您只是想执行一些的DOS命令的集合,则按顺序在每行输入一个DOS命令就行了。
但如果您是想完成一些更复杂的操作,就需要以上的批处理命令或上述的批处理工具了。
以下是我原来所编的一个从1%慢慢增加到100%的批处理小程序,大家可以用作参考,以编写自己的程序。
@echooff
breakoff
cls
setc=0
writext101Wait...
bedelay4
loop
writext109%c%%%completed.
countc
ifnot%c%==101gotoloop
echo.
setc=
kpush/f
breakon
其中,我用到了WRITEXT,COUNT,BE和KPUSH,这些都是批处理工具。
WRITEXT是ECHO的增强工具,可以自定义显示的效果。
COUNT是变量的计算工具,如原来C的值为1,执行COUNTC后C的值就为2。
BE是个强大的批处理增强工具,在NortonUtilties8.0中带有。
KPUSH是键盘缓冲工具。
总之,利用批处理命令和批处理增强工具,我们可以编出许多强大的批处理文件来。
A:
1echo和@
回显命令
@#关闭单行回显
echooff#从下一行开始关闭回显
@echooff#从本行开始关闭回显。
一般批处理第一行都是这个
echoon#从下一行开始打开回显
echo#显示当前是echooff状态还是echoon状态
echo.#输出一个”回车换行”,空白行
#(同echo,echo;
echo+echo[echo]echo/echo)
2errorlevel
echo%errorlevel%
每个命令运行结束,可以用这个命令行格式查看返回码
默认值为0,一般命令执行出错会设errorlevel为1
3dir
显示文件夹内容
dir#显示当前目录中的文件和子目录
dir/a#显示当前目录中的文件和子目录,包括隐藏文件和系统文件
dirc:
/a:
d#显示C盘当前目录中的目录
-d#显示C盘根目录中的文件
/b/p#/b只显示文件名,/p分页显示
dir*.exe/s#显示当前目录和子目录里所有的.exe文件
4cd
切换目录
cd#进入根目录
cd#显示当前目录
cd/dd:
sdk#可以同时更改盘符和目录
5md
创建目录
mdd:
abc#如果d:
a不存在,将会自动创建中级目录
#如果命令扩展名被停用,则需要键入mkdirabc。
6rd
删除目录
rdabc#删除当前目录里的abc子目录,要求为空目录
rd/s/qd:
temp#删除d:
temp文件夹及其子文件夹和文件,/q安静模式
7del
删除文件
deld:
test.txt#删除指定文件,不能是隐藏、系统、只读文件
del/q/a/fd:
temp*.*
删除d:
temp文件夹里面的所有文件,包括隐藏、只读、系统文件,不包括子目录
del/q/a/f/sd:
temp及子文件夹里面的所有文件,包括隐藏、只读、系统文件,不包括子目录
8ren
重命名命令
rend:
temptmp#支持对文件夹的重命名
9cls
清屏
10type
显示文件内容
typec:
boot.ini#显示指定文件的内容,程序文件一般会显示乱码
type*.txt#显示当前目录里所有.txt文件的内容
11copy
拷贝文件
copyc:
test.txtd:
test.bak
复制c:
test.txt文件到d:
,并重命名为test.bak
copycontest.txt
从屏幕上等待输入,按Ctrl+Z结束输入,输入内容存为test.txt文件
con代表屏幕,prn代表打印机,nul代表空设备
copy1.txt+2.txt3.txt
合并1.txt和2.txt的内容,保存为3.txt文件
如果不指定3.txt,则保存到1.txt
copytest.txt+
复制文件到自己,实际上是修改了文件日期
12title
设置cmd窗口的标题
title新标题#可以看到cmd窗口的标题栏变了
13ver
显示系统版本
14label和vol
设置卷标
vol#显示卷标
label#显示卷标,同时提示输入新卷标
labelc:
system#设置C盘的卷标为system
15pause
暂停命令
16rem和:
注释命令
注释行不执行操作
17date和time
日期和时间
date#显示当前日期,并提示输入新日期,按“回车“略过输入
date/t#只显示当前日期,不提示输入新日期
time#显示当前时间,并提示输入新时间,按“回车“略过输入
time/t#只显示当前时间,不提示输入新时间
18goto和:
跳转命令
label#行首为:
表示该行是标签行,标签行不执行操作
gotolabel#跳转到指定的标签那一行
19find(外部命令)
查找命令
find“abc“c:
test.txt
在c:
test.txt文件里查找含abc字符串的行
如果找不到,将设errorlevel返回码为1
find/i“abc”c:
查找含abc的行,忽略大小写
find/c“abc“c:
显示含abc的行的行数
20more(外部命令)
逐屏显示
morec:
test.txt#逐屏显示c:
test.txt的文件内容
21tree
显示目录结构
treed:
#显示D盘的文件目录结构
22&
顺序执行多条命令,而不管命令是否执行成功
23&
&
和||
顺序执行多条命令,当碰到执行出错的命令后将不执行后面的命令
||顺序执行多条命令,当碰到执行正确的命令后将不执行后面的命令
find“ok“c:
test.txt&
echo成功
如果找到了“ok“字样,就显示“成功“,找不到就不显示
test.txt||echo不成功
如果找不到“ok“字样,就显示“不成功“,找到了就不显示
24|
管道命令
dir*.*/s/a|find/c“.exe“
管道命令表示先执行dir命令,对其输出的结果执行后面的find命令
该命令行结果:
输出当前文件夹及所有子文件夹里的.exe文件的个数
test.txt|more
这个和morec:
test.txt的效果是一样的
25〉和〉〉和^
输出重定向命令
〉清除文件中原有的内容后再写入
〉〉追加内容到文件末尾,而不会清除原有的内容
主要将本来显示在屏幕上的内容输出到指定文件中
指定文件如果不存在,则自动生成该文件
test.txt〉prn
屏幕上不显示文件内容,转向输出到打印机
echohelloworld〉con
在屏幕上显示helloworld,实际上所有输出都是默认〉con的
test.txtf:
〉nul
拷贝文件,并且不显示“文件复制成功“的提示信息,但如果f盘不存在,还是会显示出错信息
〉nul2〉nul
不显示”文件复制成功”的提示信息,并且f盘不存在的话,也不显示错误提示信息
^的作用是把命令符号转意成文本符号,它也可以转意自己,如:
echo^^W^〉^W〉c:
生成的文件内容为^W〉W
^和〉是控制命令,要把它们输出到文件,必须在前面加个^符号
set/p=^|
|是管道命令,要显示|,就要加^
26’’和““
单引号的作用是,将多个命令组成的复合语句当成一条语句
双引号的表示其内部内容为文本符号,它也可以连接两个或多个以空格间隔的文本符号
for/f“tokens=15“%%iin(’ipconfig^|find/i“ipaddress“’)dosetip=%%i
ipconfig为语句一,find/i“ipaddress“为语句二,用单引号合为一条语句
IF/I“%c%“==“1“ECHO%c%
setp=“ILoveYou!
!
“
findifset
27〈
从文件中获得输入信息,而不是从屏幕上
一般用于datetimelabel等需要等待输入的命令
@echooff
echo2005-05-01〉temp.txt
date〈temp.txt
deltemp.txt
这样就可以不等待输入直接修改当前日期
28%0%1%2%3%4%5%6%7%8%9%*
命令行传递给批处理的参数
%0批处理文件本身
%1第一个参数
%9第九个参数
%*从第一个参数开始的所有参数
批参数(%n)的替代已被增强。
您可以使用以下语法:
%~1-删除引号(“),扩充%1
%~f1-将%1扩充到一个完全合格的路径名
%~d1-仅将%1扩充到一个驱动器号
%~p1-仅将%1扩充到一个路径
%~n1-仅将%1扩充到一个文件名
%~x1-仅将%1扩充到一个文件扩展名
%~s1-扩充的路径指含有短名
%~a1-将%1扩充到文件属性
%~t1-将%1扩充到文件的日期/时间
%~z1-将%1扩充到文件的大小
%~$PATH:
1-查找列在PATH环境变量的目录,并将%1
扩充到找到的第一个完全合格的名称。
如果环境
变量名未被定义,或者没有找到文件,此组合键会
扩充到空字符串
可以组合修定符来取得多重结果:
%~dp1-只将%1扩展到驱动器号和路径
%~nx1-只将%1扩展到文件名和扩展名
%~dp$PATH:
1-在列在PATH环境变量中的目录里查找%1,
并扩展到找到的第一个文件的驱动器号和路径。
%~ftza1-将%1扩展到类似DIR的输出行。
可以参照call/?
或for/?
看出每个参数的含意
echoload“%%1““%%2“〉c:
生成的文件内容为load“%1““%2“
批处理文件里,用这个格式把命令行参数输出到文件
29if
判断命令
if“%1“==“/a“echo第一个参数是/a
if/i“%1“equ“/a“echo第一个参数是/a
/i表示不区分大小写,equ和==是一样的,其它运算符参见:
EQU-等于
NEQ-不等于
LSS-小于
LEQ-小于或等于
GTR-大于
GEQ-大于或等于
ifexistc:
test.batecho存在c:
test.bat文件
ifnotexistc:
windows(
echo不存在c:
windows文件夹
)
test.bat(
echo存在c:
test.bat
)else(
30setlocal和endlocal
设置”命令扩展名”和”延缓环境变量扩充”
SETLOCALENABLEEXTENSIONS#启用“命令扩展名“
SETLOCALDISABLEEXTENSIONS#停用“命令扩展名“
SETLOCALENABLEDELAYEDEXPANSION#启用“延缓环境变量扩充“
SETLOCALDISABLEDELAYEDEXPANSION#停用“延缓环境变量扩充“
ENDLOCAL#恢复到使用SETLOCAL语句以前的状态
“命令扩展名”默认为启用“延缓环境变量扩充”默认为停用批处理结束系统会自动恢复默认值
可以修改注册表以禁用“命令扩展名“,详见cmd/?
。
所以用到“命令扩展名“的程
序,建议在开头和结尾加上SETLOCALENABLEEXTENSIONS和ENDLOCAL语句,以确
保程序能在其它系统上正确运行“延缓环境变量扩充“主要用于if和for的符合语句,
在set的说明里有其实用例程
31set
设置变量
引用变量可在变量名前后加%,即%变量名%
set#显示目前所有可用的变量,包括系统变量和自定义的变量
echo%SystemDrive%#显示系统盘盘符。
系统变量可以直接引用
setp#显示所有以p开头的变量,要是一个也没有就设errorlevel=1
setp=aa1bb1aa2bb2#设置变量p,并赋值为=后面的字符串,即aa1bb1aa2bb2
echo%p%#显示变量p代表的字符串,即aa1bb1aa2bb2
echo%p:
~6%#显示变量p中第6个字符以后的所有字符,即aa2bb2
~6,3%#显示第6个字符以后的3个字符,即aa2
~0,3%#显示前3个字符,即aa1
~-2%#显示最后面的2个字符,即b2
~0,-2%#显示除了最后2个字符以外的其它字符,即aa1bb1aa2b
aa=c%#用c替换变量p中所有的aa,即显示c1bb1c2bb2
aa=%#将变量p中的所有aa字符串置换为空,即显示1bb12bb2
*bb=c%#第一个bb及其之前的所有字符被替换为c,即显示c1aa2bb2
setp=%p:
*bb=c%#设置变量p,赋值为%p:
*bb=c%,即c1aa2bb2
set/ap=39#设置p为数值型变量,值为39
set/ap=39/10#支持运算符,有小数时用去尾法,39/10=3.9,去尾得3,p=3
set/ap=p/10#用/a参数时,在=后面的变量可以不加%直接引用
set/ap=”1&
0″#”与”运算,要加引号。
其它支持的运算符参见set/?
setp=#取消p变量
set/pp=请输入
屏幕上显示”请输入”,并会将输入的字符串赋值给变量p
注意这条可以用来取代choice命令
注意变量在if和for的复合语句里是一次性全部替换的,如
setp=aaa
if%p%==aaa(
echo%p%
setp=bbb
结果将显示
aaa
因为在读取if语句时已经将所有%p%替换为aaa
这里的“替换“,在/?
帮助里就是指“扩充“、“环境变量扩充“
可以启用”延缓环境变量扩充”,用!
来引用变量,即!
变量名!
SETLOCALENABLEDELAYEDEXPANSION
echo!
p!
ENDLOCAL
bbb
还有几个动态变量,运行set看不到
%CD%#代表当前目录的字符串
%DATE%#当前日期
%TIME%#当前时间
%RANDOM%#随机整数,介于0~32767
%ERRORLEVEL%#当前ERRORLEVEL值
%CMDEXTVERSION%#当前命令处理器扩展名版本号
%CMDCMDLINE%#调用命令处理器的原始命令行
可以用echo命令查看每个变量值,如echo%time%
注意%time%精确到毫秒,在批处理需要延时处理时可以用到
32start
批处理中调用外部程序的命令,否则等外部程序完成后才继续执行剩下的指令
33call
批处理中调用另外一个批处理的命令,否则剩下的批处理指令将不会被执行
有时有的应用程序用start调用出错的,也可以call调用
34choice(外部命令)
选择命令
让用户输入一个字符,从而选择运行不同的命令,返回码errorlevel为1234……
win98里是
win2000pro里没有,可以从win98里拷过来
win2003里是choice.exe
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 一份 比较 详细 DOS 命令 说明