批处理命令的语法与功能

目录

[案例一 echo命令语法及应用](#案例一 echo命令语法及应用)

[案例二 @命令语法及应用](#案例二 @命令语法及应用)

[案例三 goto命令语法及应用](#案例三 goto命令语法及应用)

[案例四 pause命令语法及应用](#案例四 pause命令语法及应用)

[案例五 call命令语法及应用](#案例五 call命令语法及应用)

[案例六 start命令语法及应用](#案例六 start命令语法及应用)

[案例七 rem命令语法及应用](#案例七 rem命令语法及应用)

[案例八 if命令语法及应用](#案例八 if命令语法及应用)

[案例九 set命令的语法及应用](#案例九 set命令的语法及应用)

[案例十 setlocal命令的语法及应用](#案例十 setlocal命令的语法及应用)

[案例十一 shift命令语法及应用](#案例十一 shift命令语法及应用)

[案例十二 for命令语法及应用](#案例十二 for命令语法及应用)

[案例十三 通配符("*"、"?")的应用](#案例十三 通配符(“*”、“?”)的应用)

[案例十四 重定向符("<"、">"、">>")的应用](#案例十四 重定向符(“<”、“>”、“>>”)的应用)

[案例十五 管道符("|")](#案例十五 管道符(“|”))


批处理创建完毕后,按【Win+R】键弹出"运行"对话框,输入"cmd"并单击"确定"按钮。打开命令行窗口后,切换到批处理文件的根目录下,输入文件名并按回车后就可以运行。


案例一 echo命令语法及应用

"echo"命令可用于在屏幕上显示相关的文字信息,还可用于控制批处理文件在执行的过程中是否回显。

命令格式: echo [{on|off}] [message]

参数说明:

on:允许批处理文件在执行的过程中回显命令。

off:禁止批处理文件在执行的过程中回显命令。

message:表示需要显示在屏幕上的信息。

/?:在命令提示符显示帮助。

注意:"echo"命令虽然可以控制批处理命令中其他命令是否回显,但却不能控制命令本身。


案例二 @命令语法及应用

"@"是一个非常简单的命令,用于禁止当前执行的命令回显在屏幕上。"@"不受"echo"命令设置效果的影响,且命令本身不会回显在屏幕上。

命令格式:@ [command]

参数说明:

command:要屏蔽回显的命令。

当命令不加任何参数执行时,将不会产生任何效果。

注意:"@"与"echo"的主要区别在于:"@"只对当前命令行起作用,且不受"echo"命令设置影响;"echo"命令则影响设置之后的所有命令,一直到出现另一个"echo"命令改变状态为止。


案例三 goto命令语法及应用

"goto"是一个流程控制转向命令,用于控制批处理中的命令执行流程。

命令格式:goto label

参数说明:

label:表示批处理文件中某行,该行表示批处理文件新的执行点。

注意:批处理中的标号通常单独占一行,标号行以":"号开头紧跟标识符,这个标识符将用在"goto"语句后。标识符中不能含有逗号、冒号等,但可以使用空格。标识符的有效长度为最多8个字符,如果多余8个字符则只识别前8个字符。


案例四 pause命令语法及应用

"pause"命令用于暂停批处理的执行并给出提示信息,然后由用户决定是继续执行还是中断执行。

命令格式:pause

参数说明:

pause:此命令非常简单,无需任何参数。当命令运行后,会中断执行的语句。

注意:运行批处理文件,当执行到"pause"命令后暂停执行,按键盘上任意键,即可继续运行后面的命令;若按下【Ctrl+C】键,则可直接中断批处理的执行,返回到命令行状态。


案例五 call命令语法及应用

"call"是一个功能强大的命令,它不但可在批处理程序中调用另一个批处理程序,而且还可调用指定标号处后面的所有指令。

命令格式:call [[Drive:][Path] FileName [BatchParametera]] [:label [arguments]]

参数说明:

[Drive:][Path] FileName:指定被调用的批处理文件名,当被调用的批处理文件与正在执行的批处理文件都处于同一目录下时,可以省略盘符及路径。

:label:用于指定调用位置的标签,与goto语句中使用的标签类似。

arguments:对于以":label"开头的批处理程序,指定要传送给其新实例的命令行信息,包括命令行选项、文件名、批处理参数或者变量。

/?:在命令提示符显示帮助。

注意:"call"命令在使用称号时,标识符前必须加上":"号,而"goto"命令中则不需要加。此外,使用"call"命令转向符号并执行到文件结束时,会返回调用处继续运行下面的命令,而"goto"语句跳转后不再返回。


案例六 start命令语法及应用

"start"命令用于重新启用一个单独的命令行窗口,然后在新窗口中执行指定的程序或命令。

命令格式:satrt ["title"] [/dPath] [/i] [/min] [/max] [{/separate|/shared}] [{/low|/normal|/high|/realtime|/abovenormal|/belownormal}] [/wait] [/b] [FileName] [parameters]

参数说明:

title:指定在"命令提示符"窗口标题栏中显示的标题。

/dPath:指定启动目录。

/i:将Cmd.exe启动环境传送到新的"命令提示符"窗口。

/min:启动新的最小化"命令提示符"窗口。

/max:启动新的最大化"命令提示符"窗口。

/separate:在单独的内存空间启动16位程序。

/shared:在共享的内存空间启动16位程序。

/low:以空闲优先级启动应用程序。

/normal:以一般优先级启动应用程序。

/high:以高优先级启动应用程序。

/realtime:以实时优先级启动应用程序。

/abovenormal:以超出常规优先级的方式启动应用程序。

/belownormal:以低出常规优先级的方式启动应用程序。

/wait:启动应用程序,并等待其结束。

/b:启动应用程序时不必打开新的"命令提示符"窗口。除非应用程序启用【Ctrl+C】组合键操作,否则将忽略【Ctrl+C】。按【Ctrl+Break】键可中断应用程序。

FileName:指定要启动的命令或程序。

parameters:指定要传送给命令或程序的参数。

/?:在命令提示符显示帮助。


案例七 rem命令语法及应用

"rem"是一个注释命令,用于在批处理中加入相应的说明信息。

命令格式:rem [comment]

参数说明:

comment:指定要作为注释的任何字符串。

/?:在命令提示符显示帮助。

注意:批处理在执行时,"rem"注释命令行被忽略,直接执行文件中的其他命令。


案例八 if命令语法及应用

"if"是一个非常重要的命令,它通过条件来决定批处理程序应该如何执行。

命令格式:if [not] errorlevel number command [else expression]

命令格式:if [not] string1 == string2 command [else expression]

命令格式:if [not] exist filename command [else expression]

命令格式:if [/i] string1 compareop string2 command [else expression]

命令格式:if cmdextversion number command [else expression]

命令格式:if defined variable command [else expression]

参数说明:

not:指定只有当条件为假时才执行该命令。

errorlevel number:只有当由Cmd.exe运行的前一个程序返回大于或等于number的退出代码时,才能指定真条件。

command:指定只有满足前面的条件时才应执行的命令。

string1 == string2:只有当string1和string2相同时才能指定真条件。

exist filename:如果filename存在,则指定真条件。

compareop:指定长度位3个字母的比较运算符。其中,"EQU"代表等于,"NEQ"代表不等于,"LSS"代表小于,"LEQ"代表小于或等于,"GTR"代表大于,"GEQ"代表大于或等于。

/i:强制字符串比较忽略大小写。

cmdextversion number:只有当与Cmd.exe的"命令扩展"功能相关的内部版本号等于或大于number时,才指定真条件。第一个版本是1。当命令扩展的功能有重大增强时,则在此号码上加1.当禁用了命令扩展时(默认情况下位启用),cmdextversion条件不为真。

defined variable:如果定义了variable,则指定条件为真。

expression:指定将传递给else子句中的命令和任何参数。

/?:在命令提示符显示帮助。

注意:若"if"命令中带有"else"子命令,"else"子命令一定要与"if"中的最后一个命令在同一行,否则会出现错误。此外,当"if"或"else"后面跟有多条命令时,应该用小括号将其括起来。


案例九 set命令的语法及应用

"set"专门用来创建、设置、查看或删除环境变量。

命令格式:set [[/a [expression]] [/p [variable=]] string]

参数说明:

/a:将string设置成可求值的数字表达式。

expression:合法的表达式。

/p:将variable的值设置成输入行。

variable:指定需要设置或修改的变量。

string:指定要与指定变量关联的字符串。

/?:在命令提示符显示帮助。

注意:批处理文件中使用变量时,应该在变量名前后分别加上一个百分号,否则无法正确使用变量。


案例十 setlocal命令的语法及应用

"setlocal"命令可在批处理程序运行时设置自身的临时变量环境,且不会影响到系统的变量环境设置。

命令格式:setlocal {enableextension|disableextensions} {enabledelayedexpansion|disabledelayedexpansion}

参数说明:

enableextension:启用命令扩展,直到出现匹配的endlocal命令,无论setlocal命令之前的设置如何。

disableextensions:禁用命令扩展,直到出现匹配的endlocal命令,无论setlocal命令之前的设置如何。

enabledelayedexpansion:启用延迟的环境变量扩展,直到出现匹配的endlocal命令,无论setlocal命令之前的设置如何。

disabledelayedexpansion:禁用延迟的环境变量扩展,直到出现匹配的endlocal命令,无论setlocal命令之前的设置如何。

/?:在命令提示符显示帮助。

注意:"setlocal"须与"endlocal"命令联合使用,"endlocal"命令用于结束临时变量环境并回到系统变量环境。


案例十一 shift命令语法及应用

"shift"命令用于更改批处理文件处理参数的方式,如指定起始处理参数的位置等。

命令格式:shift [/n]

参数说明:

/n:设置批处理从第n个参数开始移位,n的值为0~8。

/?:在命令提示符显示帮助。

注意:符号%0~%9专用于批处理从命令行获得的参数,依次代表命令行的相应参数。批处理程序首先判断第一个参数是否为空,若为空则表示没有提供参数,故直接结束;当参数不为空时,则显示相应文件的内容。当执行到"shift"命令时,会自动将%1的值赋给%0,%2的值赋给%1......,依此类推。


案例十二 for命令语法及应用

"for"是批处理中一个功能强大且相对复杂的命令,它可对一组不同的文件或数据进行循环处理。

命令格式:for {%variable|%%variable} in (set) do command [CommandLineOptions]

参数说明:

%variable|%%variable:代表可替换的参数。使用%variable通过命令提示符执行for命令。使用%%variable在批处理文件中执行for命令。

set:指定要用指定命令处理的一个或多个文件、目录、数值范围以及文本字符串。

command:指定要对包括在指定(set)中的每个文件、目录、数值范围以及文本字符串所执行的命令。

CommandLineOptions:指定要通过指定命令使用的任何命令行选项。

/?:在命令提示符显示帮助。

注意:在循环体中可对"for"后变量直接引用,这种引用与使用"set"命令定义的变量不同,"for"后的变量区分大小写。


案例十三 通配符("*"、"?")的应用

"*"及"?"是两个非常重要的标识符,利用这两个表示符可以灵活地表示文件及目录。其中,"*"代表任意多个字符(包括零个字符),"?"代表任意单个字符。


案例十四 重定向符("<"、">"、">>")的应用

"<"、">"及">>"是批处理程序中的3个重定向符号,用于控制数据的输入或输出方式。"<"符号的右边是数据源,左边代表数据目的地;">"及">>"符号的左边是数据源,">"会替换目的数据,而">>"符号只是将数据源添加到目标数据后。


案例十五 管道符("|")

管道符"|"将一个命令的输出数据提取出来,然后将提取的数据作为另一个命令的输入。

相关推荐
dal118网工任子仪3 小时前
66,【6】buuctf web [HarekazeCTF2019]Avatar Uploader 1
笔记·学习
代码讲故事3 小时前
从Windows通过XRDP远程访问和控制银河麒麟ukey v10服务器,以及多次连接后黑屏的问题
linux·运维·服务器·windows·远程连接·远程桌面·xrdp
羊小猪~~3 小时前
MYSQL学习笔记(四):多表关系、多表查询(交叉连接、内连接、外连接、自连接)、七种JSONS、集合
数据库·笔记·后端·sql·学习·mysql·考研
milk_yan4 小时前
Docker集成onlyoffice实现预览功能
前端·笔记·docker
东京老树根5 小时前
Excel 技巧15 - 在Excel中抠图头像,换背景色(★★)
笔记·学习·excel
Ronin-Lotus6 小时前
嵌入式硬件篇---ADC模拟-数字转换
笔记·stm32·单片机·嵌入式硬件·学习·低代码·模块测试
UQI-LIUWJ7 小时前
LLM笔记:LayerNorm VS RMSNorm
笔记
东京老树根8 小时前
Excel 技巧17 - 如何计算倒计时,并添加该倒计时的数据条(★)
笔记·学习·excel
qdprobot9 小时前
Mixly米思齐1.0 2.0 3.0 软件windows版本MAC苹果电脑系统安装使用常见问题与解决
windows·macos
m0_748240549 小时前
AutoSar架构学习笔记
笔记·学习·架构