3DOS批处理文档.docx
- 文档编号:10460277
- 上传时间:2023-02-13
- 格式:DOCX
- 页数:39
- 大小:40.78KB
3DOS批处理文档.docx
《3DOS批处理文档.docx》由会员分享,可在线阅读,更多相关《3DOS批处理文档.docx(39页珍藏版)》请在冰豆网上搜索。
3DOS批处理文档
目录
DOS批处理释义4
DOS批处理命令4
(必需掌握)goto跳转命令4
(必需掌握)set变量设置命令5
(必需掌握)call命令5
(必需掌握)choice选择命令6
(必需掌握)pause暂停命令7
start命令8
echo回显命令8
@命令9
rem注释命令9
DOS命令释义(常用命令,批处理可用)10
文件夹管理10
(必需掌握)cd显示当前目录名或改变当前目录。
cd目录路径10
(必需掌握)md创建目录。
md文件夹路径10
(必需掌握)rd删除一个目录。
rd文件夹路径10
(必需掌握)dir显示目录中的文件和子目录列表。
dir10
tree以图形显示驱动器或路径的文件夹结构。
10
path为可执行文件显示或设置一个搜索路径。
10
xcopy复制文件和目录树。
10
文件管理10
(必需掌握)type显示文本文件的内容。
type文件名10
(必需掌握)copy复制文件。
copy/y源文件名目标文件名10
(必需掌握)del删除一个或数个文件。
del/y文件名和路径11
(必需掌握)move移动并重命名文件和目录。
move/y源文件目标文件11
(必需掌握)ren重命名文件。
ren文件名新文件名11
replace替换文件。
11
attrib显示或更改文件属性。
11
find搜索字符串。
11
fc比较两个文件或两个文件集并显示它们之间的不同11
网络命令12
ping进行网络连接测试、名称解析12
(必需掌握)ftp文件传输指令FTP ftp-s:
ftp54.ftp132.104.64.5412
net网络命令集及用户管理12
telnet远程登陆12
ipconfig显示、修改TCP/IP设置12
msg给用户发送消息12
arp显示、修改局域网的IP地址-物理地址映射列表12
系统管理13
at安排在特定日期和时间运行命令和程序13
shutdown立即或定时关机或重启13
tskill结束进程13
taskkill结束进程(比tskill高级,但WinXPHome版中无该命令)13
tasklist显示进程列表(WindowsXPHomeEdition中没有)13
sc系统服务设置与控制13
reg注册表控制台工具13
powercfg控制系统上的电源设置13
cls清屏13
特殊操作符号13
&执行多条命令Usage:
第一条命令&第二条命令[&第三条命令...]13
&&执行多条命令Usage:
第一条命令&&第二条命令[&&第三条命令...]13
||Usage:
第一条命令││第二条命令[││第三条命令...]13
(必需掌握)|管道命令Usage:
第一条命令│第二条命令[│第三条命令...]14
(必需掌握)>、>>输出重定向命令14
<、>&、<&14
DOS批处理流程控制语句14
if语句(选择结构)14
(必需掌握)if三种格式:
15
if更详细的介绍15
for语句(循环结构)17
(必需掌握)1、无开关18
2、开关/L18
3、开关/F19
4、开关/D或/R22
DOS批处理变量说明23
(一)环境变量23
【1、系统变量】23
(必需掌握)【2、常用系统变量】24
(二)用户变量25
(三)参数25
【1、直接传递】25
(必需掌握)【2、间接传递】%1~%926
【3、区别】28
(四)返回值errorlevel28
(五)用户交互29
(六)ASCII码31
DOS批处理字符串处理功能31
1、(必需掌握)截取字符串%变量名:
~截取起始位置,截取个数%31
2、(必需掌握)替换字符串32
3、(必需掌握)字符串合并33
4、扩充字符串33
DOS批处理数值计算简介set/aexpression35
DOS批处理释义
批处理是一种简化的脚本语言,也称作宏。
它应用于DOS和Windows系统中,它是由DOS或者Windows系统内嵌的命令解释器(通常是COMMAND.COM或者CMD.EXE)解批处理文件图标释运行。
类似于Unix中的Shell脚本。
批处理文件具有.bat或者.cmd的扩展批处理窗口名,其最简单的例子,是逐行书写在命令行中会用到的各种命令。
更复杂的情况,需要使用if,for,goto等命令控制程序的运行过程,如同C,Basic等中高级语言一
样。
如果需要实现更复杂的应用,利用外部程序是必要的,这包括系统本身提供的外部命令和第三方提供的工具或者软件。
批处理文件,或称为批处理程序,是由一条条的DOS命令
组成的普通文本文件,可以用记事本直接编辑或用DOS命令创建,也可以用DOS下的文本编辑器Edit.exe来编辑。
在“命令提示”下键入批处理文件的名称,或者双击该批处理文件,系统就会调用Cmd.exe运行该批处理程序。
一般情况下,每条命令占据一行;当然也可以将多条命令用特定符号(如:
&、&&、|、||等)分隔后写入同一行中;还有的情况就是像if、for等较高级的命令则要占据几行甚至几十几百行的空间。
系统在解释运行批处理程序时,首先扫描整个批处理程序,然后从第一行代码开始向下逐句执行所有的命令,直至程序结尾或遇见exit命令或出错意外退出。
DOS批处理命令
(必需掌握)goto跳转命令
跳转命令。
指定跳转到标签,找到标签后,程序将处理从下一行开始的命令。
语法:
gotolabel(label是参数,指定所要转向的批处理程序中的行。
)
Sample:
if{%1}=={}gotonoparms
if{%2}=={}gotonoparms(如果这里的if、%1、%2你不明白的话,先跳过去,后面会有详细的解释。
)
@Remcheckparametersifnullshowusage
:
noparms
echoUsage:
monitor.batServerIPPortNumber
gotoend
标签的名字可以随便起,但是最好是有意义的字母啦,字母前加个:
用来表示这个字母是标签,goto命令就是根据这个:
来寻找下一步跳到到那里。
最好有一些说明这样你别人看起来才会理解你的意图啊。
(必需掌握)set变量设置命令
显示、设置或删除变量。
显示变量:
set或sets前者显示批处理当前已定义的所有变量及其值,后者显示所有以s开头的变量及值。
设置变量:
setaa=abcd此句命令便可向变量aa赋值abcd。
如果变量aa已被定义,则aa的值被修改为abcd;若aa尚未定义,则此句命令即可定义新的变量aa,同时为变量aa赋予初始值abcd。
删除变量:
setaa=此句命令即可删除变量aa。
若变量aa已被定义,则删除变量aa;若aa尚未定义,则此句命令无实质意义。
需要说明的是,批处理中的变量是不区分类型的,不需要像C语言中的变量那样还要区分int、float、char等。
比如执行setaa=345后,变量aa的值既可以被视为数字345,也可以被视为字符串345。
set命令具有扩展功能,如用作交互输入、字符串处理、数值计算等,属于高级命令范畴。
取日期案例:
1、取上月本日日期
setyy=%date:
~,4%
set/amm=%date:
~5,1%*10+%date:
~6,1%-1/a参数必须有,用于数值计算
if"%mm%"=="0"(setmm=12&set/ayy-=1)
if%mm%lss10set"mm=0%mm%"
setymd=%yy%-%mm%-%date:
~8,2%
echo上个月本日日期:
%ymd%
2、取本日日期
setdate_t=%date:
~0,4%%date:
~5,2%%date:
~8,2%
(必需掌握)call命令
从一个批处理程序调用另一个批处理程序,并且不终止父批处理程序。
call批处理功能界面命令接受用作调用目标的标签。
如果在脚本或批处理文件外使用Call,它将不会在命令行起作用。
语法 call[[Drive:
][Path]FileName][:
label[arguments]]
如果不用call而直接调用别的批处理文件,那么执行完那个批处理文件后将无法返回当前文件并执行当前文件的后续命令。
参数 [Drive:
}[Path]FileName指定要调用的批处理程序的位置和名称。
filename参数必须具有.bat或.cmd扩展名。
(必需掌握)choice选择命令
choice使用此命令可以让用户输入一个字符,从而运行不同的命令。
使用时应该加/c:
参数,c:
后应写提示可输入的字符,之间无空格。
它的返回码为1234......
如:
choice/c:
dmedefrag,mem,end
将显示defrag,mem,end[D,M,E]?
参数列表:
/Cchoices指定要创建的选项列表。
默认列表是"YN"。
/N在提示符中隐藏选项列表。
提示前面的消息得到显示,选项依旧处于启用状态。
/CS允许选择分大小写的选项。
在默认情况下,这个工具是不分大小写的。
/Ttimeout做出默认选择之前,暂停的秒数。
可接受的值是从0到9999。
如果指定了0,就不会有暂停,默认选项会得到选择。
/Dchoice在nnnn秒之后指定默认选项。
字符必须在用/C选项指定的一组选择中;同时,必须用/T指定nnnn。
/Mtext指定提示之前要显示的消息。
如果没有指定,工具只显示提示。
/?
显示帮助消息。
注意:
ERRORLEVEL环境变量被设置为从选择集选择的键索引。
列出的第一个选择返回1,第二个选择返回2,等等。
如果用户按的键不是有效的选择,该工具会发出警告响声。
如果该工具检测到错误状态,它会返回255的ERRORLEVEL值。
如果用户按Ctrl+Break或Ctrl+C键,该工具会返回0的ERRORLEVEL值。
在一个批程序中使用ERRORLEVEL参数时,将参数降序排列。
Sample:
Sample.bat的内容如下:
@echooff
choice/c:
dmedefrag,mem,end
iferrorlevel3gotodefrag(应先判断数值最高的错误码)
iferrorlevel2gotomem
iferrotlevel1gotoend
:
defrag
c:
\dos\defrag
gotoend
:
mem
mem
gotoend
:
end
echogoodbye
此文件运行后,将显示defrag,mem,end[D,M,E]?
用户可选择dme,然后if语句将作出判断,d表示执行标号为defrag的程序段,m表示执行标号为mem的程序段,e表示执行标号为end的程序段,每个程序段最后都以gotoend将程序跳到end标号处,然后程序将显示goodbye,文件结束。
例:
CHOICE/CYNC/M"确认请按Y,否请按N,或者取消请按C。
"
CHOICE/T10/Cync/CS/Dy
CHOICE/Cab/M"选项1请选择a,选项2请选择b。
"
CHOICE/Cab/N/M"选项1请选择a,选项2请选择b。
"
(必需掌握)pause暂停命令
暂停命令。
运行Pause命令时,将显示下面的消息:
Pressanykeytocontinue...(或:
请按任意键继续...)
Sample:
@echooff
:
begin
copyG:
*.*d:
\back
echo请插入另一张光盘...
pause
gotobegin
在这个例子中,驱动器G中磁盘上的所有文件均复制到d:
\back中。
显示的注释提示您将另一张光盘盘放入驱动器G时,pause命令会使程序挂起,以便您更换光盘,然后按任意键继续处理。
start命令
调用外部程序,所有的DOS命令和命令行程序都可以由start命令来调用。
常用参数:
MIN开始时窗口最小化
SEPARATE在分开的空间内开始16位Windows程序
HIGH在HIGH优先级类别开始应用程序
REALTIME在REALTIME优先级类别开始应用程序
WAIT启动应用程序并等候它结束
parameters这些为传送到命令/程序的参数
执行的应用程序是32-位GUI应用程序时,CMD.EXE不等应用程序终止就返回命令提示。
如果在命令脚本内执行,该新行为则不会发生。
echo回显命令
打开回显或关闭请求回显功能,或显示消息。
如果没有任何参数,echo批处理与联机处理命令将显示当前回显设置。
语法 echo[{on|off}][message]
echo表示显示此命令后的字符
echooff表示在此语句后所有运行的命令都不显示命令行本身
Sample:
echohelloworld
在实际应用中我们会把这条命令和重定向符号(也称为管道符号,一般用>>>^)结合来实现输入一些命令到特定的文件中。
@命令
@与echooff相象,但它是加在每个命令行的最前面,表示运行时不显示这一行的命令行(只能影响当前行)。
在入侵过程中(例如使用批处理来格式化敌人的硬盘)自然不能让对方看到你使用的命令啦。
Sample:
@echooff
@echoNowinitializingtheprogram,pleasewaitaminite...
@formatX:
/q/u/autoset(format这个命令是不可以使用/y这个参数的,可喜的是微软留了个autoset这个参数给我们,效果和/y是一样的。
)
rem注释命令
注释命令,类似于在C语言中的/*--------*/,它并不会被执行,只是起一个注释的作用,便于别人阅读和你自己日后修改。
:
:
也具有rem的功能,但:
:
和rem还是有区别的,当关闭回显时,rem和:
:
后的内容都不会显示。
顺序批处理但是当打开回显时,rem和rem后的内容会显示出来,然而:
:
后的内容仍然不会显示。
RemMessage
Sample:
@RemHereisthedescription.
DOS命令释义(常用命令,批处理可用)
文件夹管理
(必需掌握)cd显示当前目录名或改变当前目录。
cd目录路径
(必需掌握)md创建目录。
md文件夹路径
(必需掌握)rd删除一个目录。
rd文件夹路径
(必需掌握)dir显示目录中的文件和子目录列表。
dir
tree以图形显示驱动器或路径的文件夹结构。
path为可执行文件显示或设置一个搜索路径。
xcopy复制文件和目录树。
文件管理
(必需掌握)type显示文本文件的内容。
type文件名
可用于合并文本文件:
type*.751.txt>>datasource.txt
(必需掌握)copy复制文件。
copy/y源文件名目标文件名
将一份或多份文件复制到另一个位置
COPY[/D][/V][/N][/Y|/-Y][/Z][/A|/B]source[/A|/B][+source[/A|/B][+...]][destination[/A|/B]]
source指定要复制的文件。
/A表示一个ASCII文本文件。
/B表示一个二进位文件。
/D允许解密要创建的目标文件
destination为新文件指定目录和/或文件名。
/V验证新文件写入是否正确。
/N复制带有非8dot3名称的文件时,尽可能使用短文件名。
/Y不使用确认是否要改写现有目标文件的提示。
/-Y使用确认是否要改写现有目标文件的提示。
/Z用可重新启动模式复制已联网的文件。
命令行开关/Y可以在COPYCMD环境变量中预先设定。
这可能会被命令行上的/-Y替代。
除非COPY命令是在一个批文件脚本中执行的,默认值应为在改写时进行提示。
要附加文件,请为目标指定一个文件,为源指定数个文件(用通配符或file1+file2+file3格式)。
(必需掌握)del删除一个或数个文件。
del/y文件名和路径
(必需掌握)move移动并重命名文件和目录。
move/y源文件目标文件
WindowsXPHomeEdition中没有
(必需掌握)ren重命名文件。
ren文件名新文件名
replace替换文件。
attrib显示或更改文件属性。
find搜索字符串。
fc比较两个文件或两个文件集并显示它们之间的不同
网络命令
ping进行网络连接测试、名称解析
(必需掌握)ftp文件传输指令FTP ftp-s:
ftp54.ftp132.104.64.54
ftp-s:
ftp54.ftp132.104.64.54>>log.txt
ftp54.ftp文件内容为:
open132.104.75.17721(适用于需要指定端口号的情况)
sg(用户名)
asdfgh(密码)
cd(切换目录)
promptoff(关闭人机交互界面,自动处理中不出现提示)
geta.xls(下载a.xls)
putb.XLS(上传b.xls)
mget*.xls(下载所有的xls文件)
mput*.xls(上传本目录下的所有xls文件)
mdelete*.csv(批量删除某类文件)
quit
net网络命令集及用户管理
telnet远程登陆
ipconfig显示、修改TCP/IP设置
ipconfig/all显示所有网卡及IP地址设置
msg给用户发送消息
arp显示、修改局域网的IP地址-物理地址映射列表
系统管理
at安排在特定日期和时间运行命令和程序
shutdown立即或定时关机或重启
tskill结束进程
taskkill结束进程(比tskill高级,但WinXPHome版中无该命令)
tasklist显示进程列表(WindowsXPHomeEdition中没有)
sc系统服务设置与控制
reg注册表控制台工具
powercfg控制系统上的电源设置
cls清屏
特殊操作符号
&执行多条命令Usage:
第一条命令&第二条命令[&第三条命令...]
用这种方法可以同时执行多条命令,而不管命令是否执行成功
&&执行多条命令Usage:
第一条命令&&第二条命令[&&第三条命令...]
用这种方法可以同时执行多条命令,当碰到执行出错的命令后将不执行后面的命令,如果一直没有出错则一直执行完所有命令;
||Usage:
第一条命令││第二条命令[││第三条命令...]
用这种方法可以同时执行多条命令,当碰到执行正确的命令后将不执行后面的命令,如果没有出现正确的命令则一直执行完所有命令;
(必需掌握)|管道命令Usage:
第一条命令│第二条命令[│第三条命令...]
将第一条命令的结果作为第二条命令的参数来使用。
(必需掌握)>、>>输出重定向命令
将一条命令或某个程序输出结果的重定向到特定文件中,>与>>的区别在于,>会清除调原有文件中的内容后写入指定文件,而>>只会追加内容到指定文件中,而不会改动其中的内容。
对于以上列出的所有命令,在cmd中输入命令+/?
即可查看该命令的帮助信息。
如find/?
<、>&、<&
<从文件中而不是从键盘中读入命令输入。
>&将一个句柄的输出写入到另一个句柄的输入中。
<&从一个句柄读取输入并将其写入到另一个句柄输出中。
这些并不常用
DOS批处理流程控制语句
类似于C语言,批处理也有它的语句结构。
批处理的语句结构主要有选择结构(if语句)、循环结构(for语句)等。
if语句(选择结构)
if语句实现条件判断,包括字符串比较、存在判断、定义判断等。
通过条件判断,if语句即可以实现选择功能;判断是否符合规定的条件,从而决定执行不同的命令。
(必需掌握)if三种格式:
1)、if"参数"=="字符串"待执行的命令
参数如果等于指定的字符串,则条件成立,运行命令,否则运行下一句。
(注意是两个等号)
如if"%1"=="a"formata:
if{%1}=={}gotonoparms
if{%2}=={}gotonoparms
2)、ifexist文件名待执行的命令
如果有指定的文件,则条件成立,运行命令,否则运行下一句。
如ifexistconfig.syseditconfig.sys
3)、iferrorlevel/ifnoterrorlevel数字待执行的命令
如果返回码等于指定的数字,则条件成立,运行命令,否则运行下一句。
如iferrorlevel2gotox2
DOS程序运行时都会返回一个数字给DOS,称为错误码errorlevel或称返回码,常见的返回码为0、1。
if更详细的介绍
1、字符串比较 if语句仅能够对两个字符
(串)是否相同、先后顺序进行判断等。
其命令格式为:
IF[not]string1compare-opstring2command1[elsecommand2]
其中,比较操作符compare-op有以下几类:
==-等于 EQU-等于 NEQ-不等于 LSS-小于 LEQ-小于或等于 GTR-大于 GEQ-大于或等于
选择开关/i则不区分字符串大小写;选择not项,则对判断结果进行逻辑非。
字符串比较示例:
===============================================
@echooff
setstr1=abcd1233
setstr2=ABCD1234
if%str1%==%str2%(echo字符串相同!
)else(echo字符串不相同!
)
if/i%str1%LSS%str2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DOS 批处理 文档