• SET命令详解


    SET命令

    作用

    set命令在批处理可以用来设置自定义变量,也可以用来修改变量的值.

    作用1.设置变量

    格式:set 是命令  var是变量名  =号右边的"我是值"是变量的值

    @echo off
    set var=变量值
    echo %var%
    pause

    加一个"/P"参数,可以让用户自己输入变量的值

    格式:set /p 是命令语法 var是变量名 =号右边的"请输入变量的值: ",这个是提示语,不是变量的值了!

    @echo off
    set /p var=请输入变量的值
    echo 您输入了%var%
    pause

    作用2.SET /A expression

    set的/A参数就是让SET可以支持数学符号进行加减等一些数学运算

    /A 命令行开关指定等号右边的字符串为被评估的数字表达式。该表达式
    评估器很简单并以递减的优先权顺序支持下列操作:
    () - 分组
    ! ~ -   一元运算符
    * / %   算数运算符
    + -   算数运算符
    << >>   逻辑移位
    &   按位“与”
    ^   按位“异”
    |   按位“或”
    = *= /= %= += -=   赋值
    &= ^= |= < <= > >= ,   表达式分隔符

    例:

    @echo off
    set /a var=1+1
    echo %var%
    pause

    这就是一个简单的加法运算。

    set /a var=2 - 1 结果是多少呢?如果你看不到结果就echo %var%.....
    set /a var=2 * 2 乘法运算
    set /a var=2 / 2 除法运算
    set /a var=(1+1) + (1+1) 结果等于4 看得懂吧!
    set /a a=1+1,b=2+1,c=3+1 运行后会显示一个4,但我们用
    echo %a% %b% %c%后看结果,会发现其他数学运算也有效果!,这就是"斗"号的
    作用!

    @echo off
    set /a a=1+1,b=2+1,c=3+1
    echo %a% %b% %c%
    pause

    set /a var+=1  这样的语法对应原始语法就是set /a var = %var% + 1

    注:另外还有一些用逻辑或取余操作符,这些符号,按照上面的使用方法会报错的,如:

    @echo off
    set /a var = 1 & 1
    echo %var%
    pause

    对于这样的"逻辑或取余操作符",我们需要把他们用双引号引起来,如:

    @echo off
    set /a var = 1 "&" 1
    echo %var%
    pause

    set /a var= 1 "+" 1 异运算
    set /a var= 1 "%" 1 取模运算

    这些符号也可以用 &= ^= |= <<= >>= 这样的简单用法如
    set /a var"+=" 1 等于set /a var = %var% + 1 注意引号

    作用3.环境变量替换

    %PATH:str1=str2%

    %PATH:str1=str2%这个操作就是把变量%PATH%的里的str1全部用str2替换

    @echo off
    set a=bbs.verybat.cn
    echo 替换前的值:"%a%"
    set a=%a:.=伤脑筋%  ::字a是要进行字符替换的变量的值,"."为要替换的值,"伤脑筋"为替换后的值!
    echo 替换后的值:"%a%"
    pause

    %PATH:~m,n%

    从第m位开始,后n位变量替换

    @echo off
    set a=bbs.verybat.cn
    set a=%a:~1,3%
    echo %a%
    pause

    %PATH:~-m%

    替换最后m位

    @echo off
    set a=bbs.verybat.cn
    set a=%a:~-3%
    echo %a%
    pause

    %PATH:~n,-m%

     除最后m位以外,其余从第n位开始全部替换

    @echo off
    set a=bbs.verybat.cn
    set a=%a:~2,-3%
    echo %a%
    pause

  • 相关阅读:
    (双指针 二分) leetcode 167. Two Sum II
    (双指针) leetcode 485. Max Consecutive Ones
    (双指针) leetcode 27. Remove Element
    (String) leetcode 67. Add Binary
    (数组) leetcode 66. Plus One
    (N叉树 BFS) leetcode429. N-ary Tree Level Order Traversal
    (N叉树 递归) leetcode 590. N-ary Tree Postorder Traversal
    (N叉树 递归) leetcode589. N-ary Tree Preorder Traversal
    (N叉树 DFS 递归 BFS) leetcode 559. Maximum Depth of N-ary Tree
    (BST 递归) leetcode98. Validate Binary Search Tree
  • 原文地址:https://www.cnblogs.com/yifengs/p/16369700.html
Copyright © 2020-2023  润新知