3DOS批处理文档.docx

上传人:b****7 文档编号:10460277 上传时间:2023-02-13 格式:DOCX 页数:39 大小:40.78KB
下载 相关 举报
3DOS批处理文档.docx_第1页
第1页 / 共39页
3DOS批处理文档.docx_第2页
第2页 / 共39页
3DOS批处理文档.docx_第3页
第3页 / 共39页
3DOS批处理文档.docx_第4页
第4页 / 共39页
3DOS批处理文档.docx_第5页
第5页 / 共39页
点击查看更多>>
下载资源
资源描述

3DOS批处理文档.docx

《3DOS批处理文档.docx》由会员分享,可在线阅读,更多相关《3DOS批处理文档.docx(39页珍藏版)》请在冰豆网上搜索。

3DOS批处理文档.docx

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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 军事

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1