曾经困扰了很久的bat脚本,如果里面包含多种条件判断,就必须要试用if,else if,else的写法了。尝试了很久,终于找到规律:

第一种写法:最简单,就是写一行。

@echo off
rem 写一行比较简洁,缺点是每一种判断内不方便写多条语句
set varA=B
if "%varA%"=="A" (echo %varA% is A) else if "%varA%"=="B" (echo %varA% is B) else (echo %varA% is C) pause

第二种写法:可读性好的语法是分行写

@echo off
rem 在这种写法可读性好,也能执行多语句,但兼容性不太好
set varA=B
if "%varA%"=="A" (
echo %varA% is A
echo AAA
) else if "%varA%"=="B" (
echo %varA% is B
echo BBB
) else (
echo %varA% is C
echo CCC
) pause

第三种写法:可读性好的语法是分行写的加强版

@echo off
rem 可读性好,兼容性好 setlocal EnableDelayedExpansion
set option=2
set sum=-1 if %option% == 3 (
echo three
set /a sum=%option%*%option%*%option%
) ^
else if %option% == 2 (
echo two
set /a sum=2*%option%
) ^
else if %option% == 1 (
echo one
set /a sum=%option%
) ^
else (
echo zero
set /a sum=0
) echo sum = !sum! pause

分行书写总结规则:
    if 语句与左括号 ( 同行
    右括号 ) 不与 else if 同行
    右括号 ) 后面加上续行操作符 ^

【完】

最新文章

  1. pip install 安装python-requests
  2. 理解JavaScript中的事件处理
  3. VS调试Ajax
  4. 3-5 RPM包校验
  5. LaTex中让页码从正文开始编号
  6. Universal-Image-Loader 示例 工具
  7. 面试前的准备---C#知识点回顾----01
  8. Asp.net 获取图片列表并打包下载
  9. iOS开发之AutoLayout中的Content Hugging Priority和 Content Compression Resistance Priority解析
  10. 关于flex布局【转】
  11. TypeScript 函数-函数类型
  12. AI应用开发实战
  13. [转帖]内置系统账户:Local system/Network service/Local Service 区别
  14. SQLServer 2008 已成功与服务器建立连接,但是在登录前的握手期间发生错误。 (provider: SSL Provider, error: 0 - 等待的操作过时。
  15. Python核心团队计划2020年停止支持Python2,NumPy宣布停止支持计划表
  16. POJ 1470 Closest Common Ancestors (模板题)(Tarjan离线)【LCA】
  17. Area POJ - 1265 -皮克定理-叉积
  18. AWVS基本用法
  19. 搭建cdh单机版版本的hive所遇到的问题总汇
  20. 使用PHP类库PHPqrCode生成二维码

热门文章

  1. Redis—负载状态
  2. PyCharm彻底删除项目
  3. ENVOIA
  4. java面试填坑解惑篇
  5. Mybatis-plus中的常用注解
  6. c# WF 第8节 label控件
  7. python如何实现元素等待
  8. python27期尚哥讲TCP:
  9. 《为什么说 Prometheus 是足以取代 Zabbix 的监控神器?》
  10. 小程序setData()使用和注意事项