【批处理学习笔记】第十五课:语句结构(1)

简介: 类似于C语言,批处理也有它的语句结构。批处理的语句结构主要有选择结构(if语句)、循环结构(for语句)等。  if语句(选择结构)    if语句实现条件判断,包括字符串比较、存在判断、定义判断等。

    类似于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="可以取消变量,收回变量所占据的内存空间。

目录
相关文章
|
6月前
|
存储 C语言
谭浩强 第六章利用数组处理批量数据
谭浩强 第六章利用数组处理批量数据
73 0
|
前端开发 JavaScript 数据库
SsmAjaxJson分页效果的操作(第十七课)
SsmAjaxJson分页效果的操作(第十七课)
101 0
|
SQL 移动开发 BI
【SQL开发实战技巧】系列(二十二):数仓报表场景☞ 从分析函数效率一定快吗聊一聊结果集分页和隔行抽样实现方式
怎样对SQL查询结果集分页比较好、平时你用分析函数优化传统查询,所以你会不会认为分析函数一定比传统查询效率高?一个实验告诉你答案、我想对数据进行隔行抽样应该怎么实现?【SQL开发实战技巧】这一系列博主当作复习旧知识来进行写作,毕竟SQL开发在数据分析场景非常重要且基础,面试也会经常问SQL开发和调优经验,相信当我写完这一系列文章,也能再有所收获,未来面对SQL面试也能游刃有余~。分析查询的一个小建议,可能大家平时为了方便,用row_number做分页的比较多,但是在有些场景,这个效率真的挺低。
【SQL开发实战技巧】系列(二十二):数仓报表场景☞ 从分析函数效率一定快吗聊一聊结果集分页和隔行抽样实现方式
|
前端开发 JavaScript C语言
带你读书之“红宝书”:第三章 语法基础(中)之 3.6. 流控制语句①
带你读书之“红宝书”:第三章 语法基础(中)之 3.6. 流控制语句①
99 0
带你读书之“红宝书”:第三章 语法基础(中)之 3.6. 流控制语句①
|
关系型数据库 MySQL
【MySQL】数据库函数通关教程上篇(聚合、数学、字符串、日期、控制流函数)(下)
文章目录 写在前面 1 聚合函数 1.1 GROUP_CONCAT() 1.2 其他聚合函数 2 数学函数 3 字符串函数 4 日期函数 4.1 常见日期函数与使用 4.2 日期格式 5 控制流函数 5.1 if逻辑判断语句 5.2 case when语句
【MySQL】数据库函数通关教程上篇(聚合、数学、字符串、日期、控制流函数)(下)
|
关系型数据库 MySQL
【MySQL】数据库函数通关教程上篇(聚合、数学、字符串、日期、控制流函数)(上)
文章目录 写在前面 1 聚合函数 1.1 GROUP_CONCAT() 1.2 其他聚合函数 2 数学函数 3 字符串函数 4 日期函数 4.1 常见日期函数与使用 4.2 日期格式 5 控制流函数 5.1 if逻辑判断语句 5.2 case when语句
【MySQL】数据库函数通关教程上篇(聚合、数学、字符串、日期、控制流函数)(上)
|
Python
第三章--第二节:循环语句
第三章--第二节:循环语句
92 0
|
人工智能 并行计算 BI
Udacity并行计算课程 CS344 编程作业答案
Problem set 1 // Homework 1 // Color to Greyscale Conversion //A common way to represent color images is known as RGBA - the color //is specified by how much Red, Green, and Blue is in it.
1305 0
|
C语言
【批处理学习笔记】第十六课:语句结构(2)
for语句(循环结构)    for语句可以实现类似于C语言里面的循环结构,当然for语句的功能要更强大一点,通过不同的开关可以实现更多的功能。for语句有多个开关,不同开关将会实现不同的功能。1、无开关    无开关的for语句能够对设定的范围内进行循环,是最基本的for循环语句。
1194 0