• bat批处理----set


    转载自    https://www.cnblogs.com/Braveliu/p/5081084.html

    【1】set命令简介

      set,设置。

    【2】set命令使用

      1. 打印系统环境变量。set命令可以打印系统所有的环境变量信息。

      应用示例:新建文本文件,命名为set_sys,修改文件类型为bat,用Notepad++打开编辑内容如下:

    复制代码
     1 @echo off
     2 ::set 显示所有系统环境变量
     3 ::set (暂时屏蔽掉,需要执行请去掉::)
     4 pause>nul
     5 ::set c 显示所有以C开头的环境变量(不区分大小写)
     6 set c
     7 pause>nul
     8 ::set q 显示所有以Q开头的环境变量(不区分大小写)
     9 set q
    10 pause>nul
    复制代码

      执行结果:

      命令解析:

      第 3 行:由于打印系统环境变量信息太多,暂时屏蔽掉,若有兴趣在本机测试时候可以去掉屏蔽命令(::)

      第 6 行:打印所有以C开头的环境变量信息(不区分大小写)

      第 9 行:打印所有以Q开头的环境变量信息(不区分大小写) 

      2. 变量设置值。

      应用示例:新建文本文件,命名为set_value,修改文件类型为bat,用Notepad++打开编辑内容如下:

    复制代码
     1 @echo off
     2 set var=呵呵~我是变量var的值        //设值,不需要用引号
     3 echo %var%                 //显示值,变量用%%
     4 set var=abcdefg
     5 echo %var%
     6 set var="abcdefg"
     7 echo %var%
     8 set "var=abcdefg"
     9 echo %var%
    10 pause>nul
    复制代码

      执行结果:

      命令解析:

      注意:各种为变量赋值的写法,以及存在的差异性。

      3. set /p命令。

      应用示例:新建文本文件,命名为set_p,修改文件类型为bat,用Notepad++打开编辑内容如下:

    1 @echo off
    2 set /p var=请输入变量的值:        
    3 echo 你输入的值是:%var%
    4 pause>nul

      执行结果:

      命令解析:

      /p命令语法,作用可以在用户输入前加一段说明性的描述,即想让用户输入什么内容之类的说明。

      4. set /a命令。

      应用示例:新建文本文件,命名为set_a,修改文件类型为bat,用Notepad++打开编辑内容如下:

    复制代码
     1 @echo off
     2 rem +运算符
     3 set /a var=1+1
     4 echo %var%
     5 rem ()运算符
     6 set /a var=(1+1) + (1+1)
     7 echo %var%
     8 rem *运算符
     9 set /a var*=2
    10 echo %var%
    11 rem ,运算符 注意:求varB和varC时,两种写法的区别
    12 set /a varA=var, varB=%var%*2, varC=var*3
    13 echo %varA% %varB% %varC%
    14 rem 与运算符,必须双引号括起来
    15 set /a varD=1"&"0
    16 echo %varD%
    17 rem 或运算符,必须双引号括起来
    18 set /a varE=1"|"0
    19 echo %varE%
    20 rem 异运算符,必须双引号括起来
    21 set /a varF=0"^"0
    22 echo %varF%
    23 pause>nul
    复制代码

      执行结果:

      命令解析:

      详情见脚本注释。/a expression 即可以用各种表达式为变量赋值。 

      5. set替换作用

      应用示例:新建文本文件,命名为set_swap,修改文件类型为bat,用Notepad++打开编辑内容如下:

    复制代码
     1 @echo off
     2 set src= China I love you
     3 echo 替换前的值: "%src%"
     4 set des=%src:love=hate%
     5 echo 替换后的值: "%des%"
     6 set des=%src: =123%
     7 echo 替换后的值: "%des%"
     8 set des=%src:I=me%
     9 echo 替换后的值: "%des%"
    10 set des=%src:you=she%
    11 echo 替换后的值: "%des%"
    12 pause>nul
    复制代码

      执行结果:

      命令解析:

      同样的语句,写了那么多,如果你有点归纳总结的能力,估计应该可以看出来了。

      总结个模板,即如此:set des=%src:str1=str2%

      作用简述:把源变量src的值中所有的str1字符串替换成str2字符串,从而组合形成目标变量des的值。

      6. set取舍作用

      应用示例:新建文本文件,命名为set_at,修改文件类型为bat,用Notepad++打开编辑内容如下:

    复制代码
     1 @echo off
     2 set src=www.baidu.com.cn
     3 echo %src%
     4 set des=%src:~1,2%
     5 echo %des%
     6 set des=%src:~4,5%
     7 echo %des%
     8 set des=%src:~1,7%
     9 echo %des%
    10 set des=%src:~5%
    11 echo %des%
    12 set des=%src:~-5%
    13 echo %des%
    14 set des=%src:~0,-5%
    15 echo %des%
    16 set des=%src:~2,-3%
    17 echo %des%
    18 pause>nul
    复制代码

      执行结果:

      命令解析:

      第 4 行:~1,2 表示:把源变量src的值字符串从第1个索引位开始,取2位组成目标变量des的值(即:ww)。

      第 6 行:~4,5 表示:把源变量src的值字符串从第4个索引位开始,取5位组成目标变量des的值(即:baidu)。

      第 8 行:同理第4、6行(结果即:ww.baid)。

      第 10 行:~5 表示:把源变量src的值字符串从第5个索引位开始,取后面所有组成目标变量des的值(即:aidu.com.cn)。

      第 12 行:~-5 表示:把源变量src的值字符串从尾部开始取5个字符组成目标变量des的值(即:om.cn)。

      第 14 行:~0,-5 表示:把源变量src的值字符串从0索引位开始,至尾部数第五个索引位为止取出组成目标变量des的值(即:www.baidu.c)

      第 16 行:与第14行同理(结果即:w.baidu.com)。  

    Good Good Study, Day Day Up.

    顺序  选择  循环  总结

  • 相关阅读:
    容斥原理学习(Hdu 4135,Hdu 1796)
    ACdream 1112
    CodeChef--Cards, bags and coins
    ACdream 1108(莫队)
    Hdu 2586(LCA)
    CodeChef--EQUAKE
    Hackerrank--Mixing proteins(Math)
    Clash Credenz 2014 Wild Card Round题解
    Codeforces 463D
    CodeChef August Lunchtime 2014 题解
  • 原文地址:https://www.cnblogs.com/xiaopangyu/p/9585153.html
Copyright © 2020-2023  润新知