Windows批处理(二)

版权声明:本文为博主原创文章,未经博主允许不得转载。喵~ https://blog.csdn.net/weixin_38052017/article/details/89667718

前一篇我们差不多就讲了一个hello world难度的脚本,现在我们来新学三个平常一定会用到的概念。变量、条件分支判断和跳转

①:变量

在bat脚本中,变量是特别常用的。我们可以这么申明一个变量。

set param=hello

set "param=hello world"

set "parm=a^&b"

解释:申明变量时等于号一定要靠左边写,中间不能有空格。右边如果有空格表示将空格也赋值给这个变量;对于字符串中有空格的建议还是加上引号;如果赋值中有特殊字符(<>|&^等)必须用引号包着变量名和值,然后在特殊字符前加^转义。

变量的引用,使用%将变量包起来 比如

set num=1

echo %num%

变量这部分就讲这些基础的吧,还有很多别的用法我们后面用到再说。

②:条件判断与分支语句

平常我们写代码的时候分支用的最多的就是if/else了,今天我们就讲这个吧。

if主要用两种判断:结果判断和存在判断

结果判断:可以用来判断变量值

if %num%==1 echo 相等

存在判断:比如判断某个文件或者目录是否存在

if exist D:\software\script\bat\test echo 存在

如果有分支

if %num%==1 (

echo 相等

) else (

echo 不相等

)

如果在分支中存在重新对变量赋值和判断的情况,可能需要延迟变量环境扩展。这部分后续会介绍,这个地方暂时不考虑。

③:跳转

跳转这个就有点意思了,程序遇到goto的时候就会跳转到goto标签定义的部分执行。和我们定义了方法然后在别处调用时一样的。

定义一个标签我们使用冒号加一个标签名称

.....goto functionA

.....

:functionA

当执行到goto functionA的时候会跳转到:functionA处继续执行,goto和标签是一一对应的。

下面来看个和if标签组合的例子。

set filename=test.txt

set content=aaaaaaaa

if exist test.txt (

goto append

) else (

goto create

)

:append

echo %content% > %filename%

:create

echo %content% >> %filename%

今天就讲这么多了,我们来总结下今天的脚本

::变量赋值

@echo off

set "num=a^&b"

set num=2

echo %num%

pause

::条件分支

if %num%==1 (

echo 相等

) else (

echo 不相等

)

if exist D:\software\script\bat\test echo 存在

pause

::条件分支和跳转的组合

set filename=test.txt

set content=aaaaaaaa

if exist test.txt (

goto append

) else (

goto create

)

:append

echo %content% > %filename%

:create

echo %content% >> %filename%

猜你喜欢

转载自blog.csdn.net/weixin_38052017/article/details/89667718