美文网首页批处理
Windows批处理(二)

Windows批处理(二)

作者: panda_Hi | 来源:发表于2018-04-16 16:13 被阅读16次

    一、变量

    1. 在windows操作系统中,变量可分为两种:
      一种是系统已经定义好的变量,叫做“系统变量”;
      另一种就是用户自己定义的变量。也叫做“自定义变量”。
      打开一个cmd窗口,输入set命令,回车可获得系统环境变量。
      若要获取单个系统变量的值,可在cmd下输入
      echo %computername% ::获取计算机名

    二、set命令
    1、/p 参数使批处理与用户进行交互
    @echo off
    set /p var = please input:
    ::打印用户输入的数据
    echo %var%
    pause

    2、/a 参数获取右侧表达式的结果,若未加,则按字符处理
    @echo off
    set /a var = 1+1
    echo %var%
    pause

    输出结果:2
    

    3、逻辑运算:
    & 与运算,一假则假;
    | 或运算,一真则真;
    ^ 异或运算,异为真,同为假;
    % 取模运算,取余数
    另外还有<<、 >>位运算符,可结合二进制数的运算知识
    格式:
    set /a var = 1"|"0 ::结果为1
    set /a var = 1"^"1 ::结果为0
    4、 替换字符串
    set var = hello.world.!
    set var = %var:llo=被替换的字符串%
    echo %var%
    输出结果:he被替换的字符串.world.!
    5、 截取字符串
    set var = www.baidu.com
    set var = %var:~1,3%

    三、if 语句
    运行if /? 可获取帮助文档,很详细。
    IF [NOT] ERRORLEVEL number command

    IF [NOT] string1==string2 command

    IF [NOT] EXIST filename command

    NOT 指定只有条件为 false 的情况下,Windows 才应该执行该命令。
    ERRORLEVEL number 如果最后运行的程序返回一个等于或大于指定数字的返回代码,指定条件为 true。
    string1==string2 如果指定的文字字符串匹配(可理解成相同的字符串),指定条件为 true。
    EXIST filename 如果指定的文件名存在,指定条件为 true。
    command 如果符合条件,指定要执行的命令。如果指定的条件为 FALSE,命令后可跟 ELSE 命令,该命令将在 ELSE 关键字之后执行该命令。
    1、IF [NOT] ERRORLEVEL number do something 如果返回码是什么, 就做某事儿。(ERRORLEVEL number 是错误码,也称返回码。只是这么理解)
    示例
    @echo off
    ipconfig
    if errorlevel 1 goto a
    if errorlevel 0 goto b
    :a
    echo 结果为 ipconfig 执行失败!
    pause
    exit
    :b
    echo 结果为 ipconfig 正确执行!
    pause
    2、IF [NOT] string1==string2 do something 如果字符串相等或不等, 就做某事儿
    如果与指定的文字字符串匹配,指定条件为 true。
    示例
    @echo off
    set str1=abcd
    set str2=abcd
    if %str1% == %str2%
    echo 字符串str1与str2相等!
    pause
    3、IF [NOT] EXIST filename do something 如果某个文件存在, 就做某事儿
    如果指定的文件名存在,指定条件为 true。
    示例
    @echo off
    if not exist mstsc.exe
    echo 当前目录下存在文件mstsc.exe
    pause
    注意:以上各句中的[NOT]是可选项,表示只有条件为 false 的情况下,才应该执行该命令。(大家自行体会一下,有种只可意会不可言传的感觉😁)

    四、if...else...语句
    ELSE 子句必须在 IF 之后且必须出现在同一行上(重点)。
    示例
    @echo off
    IF EXIST a.txt (del a.txt) ELSE echo 不存在文件!
    pause
    ::如果存在文件 a.txt 则删除,否则显示 “不存在文件!”

    重点:1、ELSE子句必须在if之后,且必须出现在同一行;2、if与ELSE之间使用"()"隔开,这个()内的命令就是满足条件后要执行的命令。

    另外if也可以嵌套使用,跟其他语言差不多,这里就不多说了。

    相关文章

      网友评论

        本文标题:Windows批处理(二)

        本文链接:https://www.haomeiwen.com/subject/aquihftx.html