Windows 批处理(bat) if条件判断语句使用教程
Published on 2024-02-21 15:11 in 暂未分类 with 萧海~

Windows 批处理(bat) if条件判断语句使用教程

基本描述

在bat脚本中,if条件判断语句共有6种比较操作符,分别为

在这里插入图片描述
其中,只有等于操作符可以使用符号 “==” 表示,其他操作符只能使用英文简写
当参与比较的字符串是字符串时,将被转换为对于的ASCII码进行比较

If指令基本格式

指令格式为:if 条件表达式 (…)
注意:

  1. 英文缩写的比较操作符,左右两边必须有空格;“==”两侧可以不加空格

  2. 比较表达式和()之间必须有空格

    @echo off
    Set inputValue=15
    if %inputValue%==15 (echo %inputValue%等于15)
    if %inputValue% equ15 (echo %inputValue%等于15)
    pause

在这里插入图片描述

指令参数

判断字符串是否相等的时候,if语句会区分大小写
参数"/I(i)"可以在比较字符串时串忽略大小写;

@echo off
if "abc"=="ABC" (
echo 大小相等
) else (
echo 大小不等
)
if /i "abc"=="ABC" (
echo 大小相等
) else (
echo 大小不等
)
pause

在这里插入图片描述

多分支语句 if else if

  1. if else if均在一行

    @echo off
    set inputValue=15
    if %inputValue% gtr 100 (echo %inputValue%大于100) else if %inputValue% gtr 10 (echo %inputValue%大于10) else (echo %inputValue%小于或等于10)
    pause

在这里插入图片描述

  1. List item

    右括号“(” 和else if 多行
    右括号")"与 else之间空格可忽略

    @echo off
    set inputValue=23
    if %inputValue% gtr 100 (
    echo 大于100
    ) else if %inputValue% gtr 10 (
    echo 大于10
    ) else if %inputValue% gtr 0 (
    echo 大于0
    )
    pause
  2. if 和 else if多行
    右括号")"后需跟 “^”

    @echo off
    set inputValue=23
    if %inputValue% gtr 100 (
    echo 大于100
    )^
    else if %inputValue% gtr 10 (
    echo 大于10
    )^
    else if %inputValue% gtr 0 (
    echo 大于0
    )
    pause

If条件语句拓展功能

  1. If exist
    判断驱动器、文件夹或文件是否存在
    注意:if后的变量要加 %%

    @echo off
    set filepath=C:\
    if exist %filepath% (
    echo %filepath%存在
    )
    if not exist %filepath% (
    echo %filepath%不存在
    )
    set filepath=C:\Users\Administrator\Desktop
    if exist %filepath% (
    echo 路径%filepath%存在
    ) else (
    echo 路径%filepath%不存在
    )
    set sourcefile=C:\Users\Administrator\Desktop\test.bat
    if exist %sourcefile% (
    echo 文件%sourcefile%存在
    ) else (
    echo 文件%sourcefile%不存在
    )
    pause
  2. If defined
    判断某个变量是否已经被赋值
    注意:if后的变量 不能加 %%

    @echo off
    set /p filepath=请输入:
    if defined filepath (
    echo filepath存在
    )
    if not defined filepath (
    echo filepath不存在
    )
    pause
  3. if结合errorlevel使用
    结果判断,说明:环境变量errorlevel的初始值为0,当一些命令执行不成功,就会返回一个数值,如:1 ,2 等

    @echo off
    rem call "D:\VS Code\Microsoft VS Code\Code.exe"
    call C:\Users\Administrator\Desktop\printf.bat
    if %errorlevel% == 0 (
    echo 前条执行成功
    ) else (
    echo 前条执行失败
    )
    pause
posted @   萧海~  阅读(2357)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
历史上的今天:
2021-02-21 【Window】创建线程的3种方式
2021-02-21 MFC-线程控制
点击右上角即可分享
微信分享提示
电磁波切换