【Windows批处理】常用命令

网友投稿 905 2022-09-11

【Windows批处理】常用命令

【Windows批处理】常用命令

文章目录

​​介绍​​​​创建批处理文件​​

​​使用copy con命令创建​​​​使用记事本创建​​

​​语法​​

​​echo​​​​@​​​​pause​​​​call​​​​rem​​​​set​​​​goto​​​​start​​​​if​​​​for​​​​setlocal​​​​shift​​​​* 和 ?​​​​<、>、>>​​​​|​​

介绍

批处理(Batch),也称为批处理脚本。顾名思义,批处理就是对某对象进行批量的处理。批处理文件的扩展名为 bat

批处理文件,或称为批处理程序,是由一条条的DOS命令组成的普通文本文件,可以用记事本直接编辑或用DOS命令创建

批处理可以在dos系统或windows系统上运行,所以批处理的命令比dos的命令要多,基本都是dos命令组成,但多了些流程控制命令

创建批处理文件

使用copy con命令创建

使用记事本创建

语法

echo

​​echo [message]​​​:显示信息​​​echo {[on/off]}​​:开/关回显功能,如果将@echo off`放最前面,将不会显示命令本身,只显示输出结果

其中 ​​type​​ 可以显示文本文件的内容

echo ontype a.txtecho offecho Hello

@

​​@​​​用于关闭本命令回显,​​@​​​ 并不受echo状态的影响,例如 ​​@echo on​​​,这条命令不显示,​​@type a.txt​​这条命令不显示,但命令执行结果(查看a.txt内容)会显示。

@echo on@type a.txtecho offecho Hello

pause

​​pause​​用于暂停批处理的执行器并给出提示信息,然后由用户决定是继续执行还是终端执行

@echo offecho pause命令测试...pauseecho Hello World

call

​​call​​命令用来从一个批处理脚本中调用另一个批处理脚本,并且能够调用指定标号后的命令(注意调用时必须在标签名前加冒号)。调用完毕后回到调用处继续执行后边的命令,这也就是为什么 A 后边的内容输出了两遍,看例子:

test.bat内容

@echo offecho 正在调用called.bat...call called.batecho 调用完毕called.bat...echo 现在调用 A 标号后的内容...call :A:Aecho This is A

called.bat内容

@echo offecho This is called.bat

rem

​​rem​​ 为注释命令,该命令后的内容不被执行,但能回显

在 test.bat 中列出 后缀为 .bat 的文件

@echo offrem 这是一个简单的批处理命令dir *.bat

set

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

@echo offset xxx="C:\Users\00lix\Desktop\test\video"set yyy="D:\KuGou"echo 显示以x开头的变量set xdir /w %xxx%rem 删除名为xxx的变量set xxx=

goto

​​goto label​​ 跳转到要执行的标签,标签由冒号与标签名组成

多个标签之间要加上exit终止程序继续向下运行同名的标签,程序执行最上面的一个标签名必须是常量,不能是变量标签名中可使用空格,但不得包括其他分隔符(例如分号或等号)命令只使用标签的前八个字符

@echo offecho 跳过中间的命令,执行最后一条goto lastecho 111echo 222:lastecho 333

start

启动单独的“命令提示符”窗口来运行指定程序或命令。如果在没有参数的情况下使用,start 将打开第二个命令提示符窗口,命令格式如下,还有很多参数,自行百度

​​start ["title"] [/WAIT][command/program]​​​ “title”:在窗口标题栏中显示的标题 WAIT:启动应用程序并等候它结束

@echo offecho 将在新窗口中显示a.txt的内容start "a.txt"的内容 /wait type a.txtecho 已从新命令窗口返回

if

如果 if 后面判断为真后,只处理单句命令的话,直接跟在 后面就可以 如果 判断为真后,需要执行多条命令的话,则需要用括号将多条命令扩起来 注意: 括号“(” 要位于跟 if 同一行,如果不在同一行的话执行时会报语法错误 注意2:多层嵌套的if语法如下

if exist a.txt ( if exist 1.txt ( echo 存在 a.txt 和 1.txt ) else ( echo 存在 a.txt 但是不存在 1.txt )) else if exist b.txt ( echo 不存在 a.txt 但是存在 b.txt) else ( echo 不存在 a.txt 和 b.txt)

如果你要将 else if 换行,需要在 “)” 后面添加 “^” 符号。

用法1:判断文件是否存在

@echo offif exist a.txt (echo 存在a.txt) else (echo 不存在a.txt)

用法2:判断某两个字符串是否相等

@echo offif "abc"=="abc" (echo 相等) else (echo 不相等)

默认情况if语句是区分大小写,可以添加​​/i​​参数取消大小写区分

@echo offif /i "ABC"=="abc" (echo 相等) else (echo 不相等)

@echo offif 1 equ 2 (echo 1和2相等) else (echo 1和2不相等)

用法4:判断某个变量是否已经被赋值

@echo offset var1=123if defined var1 echo var1被定义了,值为%var1%if defined var2 (echo var2被定义了) else (echo var2没被定义)

for

@echo offset /a sum=0for %%x in (*.txt) do ( echo %%x文件内容如下: type %%x echo. set /a sum=sum+1)echo 一共显示了%sum%个文本文件

setlocal

启动批处理文件中环境变量的本地化。本地化将持续到出现匹配的 endlocal 命令或者到达批处理文件结尾为止

@echo offsetlocalpath=d:\echo 局部环境变量path的值:set pathendlocalecho 系统环境变量path的值:set path

shift

更改批处理文件中可替换参数的位置 语法:​​​Shift [/n]​​ 设置批处理从第n个参数开始移位,n的值为0~8

@echo off:roundif "%0"=="" goto endecho %0内容如下:type %0echo.shiftgoto round:end

* 和 ?

​​*​​​表示任意多个字符,包括0个​​​?​​表示任意单个字符

@echo offif exist *.txt echo 当前文件夹下有文本文件echo 以a开头的目录如下:dir /d /w /b a*echo.echo 以dk开头、第三个字符为任意字符、第四个字符为t、扩展名为三个字符且以do开头的文件如下:dir /b /w dk?t.do?

<、>、>>

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

@echo offecho 正在自动创建的批处理...echo type a.txt > auto.batecho dir /b /w >> auto.batecho 被自动创建的auto.bat文件的内容如下:type auto.batecho.echo 排序后的auto.bat为:sort < auto.bat

​​echo type a.txt > auto.bat​​​是把 ​​type a.txt​​​输入到 auto.bat 中,替换​​​echo dir /b /w >> auto.bat​​​是把 ​​dir /b /w​​​追加到 auto.bat 中​​​sort < auto.bat​​ 是把 auto.bat 的内容 传递给 sort 进行排序

|

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

@echo offfind "naughty" story.txt | sort > result.txtecho 对包含“naughty”单词的行排序后如下:type result.txt

批处理首先在“story.txt"文件中找出所有包含“naughty”的行,接着将找出的结果通过​​|​​传给“sort" 命令进行排序,最后将排序结果保存到“result.txt" 文件

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:WEB证书颁发
下一篇:C#如何判断委托是实例方法还是静态方法(cctv5)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~