bat文件浅析(三)

本文详细介绍了Windows批处理文件中的组合命令(&、&&、||)、set命令的应用,包括字符串处理技巧,如替换、分割、合并及长度计算。还探讨了setlocal与变量延迟的原理及其在批处理中的重要性,提供了实例演示。
摘要由CSDN通过智能技术生成

 组合命令&/&&/||

&语法:第一条命令 & 第二条命令 [& 第三条命令...]

这个符号允许在一行中使用2个以上不同的命令,当第一个命令执行失败了,也不影响后边的命令执行。这里&两边的命令是顺序执行的,从前往后执行。

&&语法:第一条命令 && 第二条命令 [&& 第三条命令...]

用这种方法可以同时执行多条命令,当碰到执行出错的命令后将不执行后面的命令,如果一直没有出错则一直执行完所有命令
这个命令和上边的类似,但区别是,第一个命令失败时,后边的命令也不会执行

||语法:第一条命令 || 第二条命令 [|| 第三条命令...]

用这种方法可以同时执行多条命令,当一条命令失败后才执行第二条命令,当碰到执行正确的命令后将不执行后面的命令,如果没有出现正确的命令则一直执行完所有命令;

C:\Users\Administrator>echo hello0 && echo hello1
hello0
hello1

C:\Users\Administrator>echo hello0 || echo hello1
hello0

之所以介绍这个,是因为后面有用到&的地方,于是就一起先介绍了。

set命令

C:\Users\ASUS>help set

显示、设置或删除 cmd.exe环境变量。

 

SET [variable=[string]]

 

  variable  指定环境变量名。

  string    指定要指派给变量的一系列字符串。

 

要显示当前环境变量,键入不带参数的 SET。

 

如果命令扩展被启用,SET会如下改变:

 

可仅用一个变量激活 SET命令,等号或值不显示所有前缀匹配SET 命令已使用的名称的所有变量的值。例如:

 

    SET P

 

会显示所有以字母 P打头的变量

 

如果在当前环境中找不到该变量名称,SET命令将把 ERRORLEVEL设置成 1。

 

SET 命令不允许变量名含有等号。

 

在 SET 命令中添加了两个新命令行开关:

 

    SET /A expression

    SET /Pvariable=[promptString]

 

/A 命令行开关指定等号右边的字符串为被评估的数字表达式。该表评估器很简单并以递减的优先权顺序支持下列操作:

    ()                  -分组

    ! ~ -               -一元运算符

    * / %               -算数运算符

    + -                 -算数运算符

    << >>               -逻辑移位

                       -按位“与”

    ^                   -按位“异”

    |                   -按位“或”

    = *= /= %= += -=    -赋值

      &= ^= |= <<=>>=

    ,                   -表达式分隔符

 

如果您使用任何逻辑或取余操作符,您需要将表达式字符串用引号扩起来。在表达式中的任何非数字字符串键作为环境变量名称,这些环境变量名称的值已在使用前转换成数字。如果指定了一个环境变量名称,但未在当前环境中定义,那么值将被定为零。这使您可以使用环境变量值做计算而不用键入那些 %符号来得到它们的值。如果SET /A 在命令脚本外的命令行执行的,那么它显示该表达式的最后值。该分配的操作符在分配的操作符左边需要一个环境变量名称。除十六进制有 0x前缀,八进制有 0 前缀的,数字值为十进位数字。因此,0x12与 18 和 022相同。请注意八进制公式可能很容易搞混: 08和 09 是无效的数字因为 8和 9 不是有效的八进制位数。(& )

 

/P 命令行开关允许将变量数值设成用户输入的一行输入。读取输入行之前,显示指定的 promptString。promptString可以是空的。

 

环境变量替换已如下增强:

 

    %PATH:str1=str2%

 

会扩展 PATH环境变量,用 "str2" 代替扩展
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值