zoukankan      html  css  js  c++  java
  • 【批处理学习笔记】第十五课:语句结构(1)

        类似于C语言,批处理也有它的语句结构。批处理的语句结构主要有选择结构(if语句)、循环结构(for语句)等。

      if语句(选择结构)
        if语句实现条件判断,包括字符串比较、存在判断、定义判断等。通过条件判断,if语句即可以实现选择功能。

    1、字符串比较
        if语句仅能够对两个字符(串)是否相同、先后顺序进行判断等。其命令格式为:
    IF [/I] [not] string1 compare-op string2 command1 [else command2]
        其中,比较操作符compare-op有以下几类:
    == - 等于
    EQU - 等于
    NEQ - 不等于
    LSS - 小于
    LEQ - 小于或等于
    GTR - 大于
    GEQ - 大于或等于
        选择开关/i则不区分字符串大小写;选择not项,则对判断结果进行逻辑非。
        字符串比较示例:
    ===============================================
    @echo off
    set str1=abcd1233
    set str2=ABCD1234
    if %str1%==%str2% (echo 字符串相同!) else (echo 字符串不相同!)
    if /i %str1% LSS %str2% (echo str1^<str2) else (echo str1^>=str2)
    echo.
    set /p choice=是否显示当前时间?(y/n)
    if /i not %choice% EQU n echo 当前时间是:%date% %time%
    pause>nul
    ===============================================
        对于最后一个if判断,当我们输入n或N时的效果是一样的,都不会显示时间。如果我们取消开关/i,则输入N时,依旧会显示时间。
        另外请注意一下几个细节:1-echo str1^<str2和echo str1^>=str2;2-echo.。

    2、存在判断
        存在判断的功能是判断文件或文件夹是否存在。其命令格式为:
    IF [NOT] EXIST filename command1 [else command2]
    ===============================================
    @echo off
    if exist %0 echo 文件%0是存在的!
    if not exist %~df0 (
    echo 文件夹%~df0不存在!
    ) else echo 文件夹%~df0存在!
    pause>nul
    ===============================================
        这里注意几个地方:
        1-存在判断既可以判断文件也可以判断文件夹;
        2-%0即代表该批处理的全称(包括驱动器盘符、路径、文件名和扩展类型);
        3-%~df0是对%0的修正,只保留了其驱动器盘符和路径,详情请参考for /?,属高级批处理范畴;
        4-注意if语句的多行书写,多行书写要求command1的左括号必须和if在同一行、else必须和command1的右括号同行、command2的左括号必须与else同行、command1和command2都可以有任意多行,即command可以是命令集。

    3、定义判断
        定义判断的功能是判断变量是否存在,即是否已被定义。其命令格式为:
    IF [not] DEFINED variable command1 [else command2]
        存在判断举例:
    ===============================================
    @echo off
    set var=111
    if defined var (echo var=%var%) else echo var尚未定义!
    set var=
    if defined var (echo var=%var%) else echo var尚未定义!
    pause>nul
    ===============================================
        对比可知,"set var="可以取消变量,收回变量所占据的内存空间。

  • 相关阅读:
    2016改变与突破的一年
    web安全测试&渗透测试之sql注入~~
    后台服务端接口验证项目实例~~
    Web自动化框架之五一套完整demo的点点滴滴(excel功能案例参数化+业务功能分层设计+mysql数据存储封装+截图+日志+测试报告+对接缺陷管理系统+自动编译部署环境+自动验证false、error案例)
    web自动化框架之四测试报告的搭建
    web自动化框架之三获取数据库值与界面值比较~~
    Web自动化框架搭建之二基于数据驱动应用简单实例~~
    web自动化框架之一介绍与环境搭建(Selenium+Eclipse+Python)
    事件响应
    威胁分析
  • 原文地址:https://www.cnblogs.com/ECJTUACM-873284962/p/7571063.html
Copyright © 2011-2022 走看看