首页 > 系统相关 >Windows 批处理(bat) if条件判断语句使用教程

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

时间:2024-02-21 15:25:47浏览次数:33  
标签:bat pause off Windows else 批处理 gtr inputValue% echo

基本描述

在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
    
    

标签:bat,pause,off,Windows,else,批处理,gtr,inputValue%,echo
From: https://www.cnblogs.com/xiaohai123/p/18025267

相关文章

  • 将SquareLine Studio导出的LVGL代码在windows上运行
    1.引入SDL驱动SquareLineStudio导出的LVGL代码后如果要在windows上运行需要引入SDL的驱动,官方导出的代码是没有的,这里提供一个自己在网上找到的SDL2-2.28.1包,解压后放在同一目录下即可2.编写CmakeLists.txt这里提供我这边自己修改的CmakeLists.txtcmake_minimum_required(......
  • windows 通过 bat 快速修改 ip 地址
    先将以下内容填写到一个txt文件中,然后另存为修改网络IP.bat文件编码选择ANSI否则会出现乱码。@echooffrem强制获取管理员权限%1mshtavbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c%~s0::","","runas",1)(window.close)&&am......
  • SpringBoot+MybatisPlus+Mysql实现批量插入万级数据多种方式与耗时对比
    场景若依前后端分离版本地搭建开发环境并运行项目的教程:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/108465662若依前后端分离版如何集成的mybatis以及修改集成mybatisplus实现Mybatis增强:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/1362030......
  • 使用NSSM 把 .net core 开发的控制台程序部署成windows 服务
    0.背景应工作需要需要写个对指定网站附件进行监控,发现有新附件时需要程序进行自动下载,程序设计使用技术如下:开发语言:.net8C# 定时任务:Quartzhttp请求和下载:HttpClienthtml解析:HtmlAgilityPack服务部署工具:NSSM 1.什么是NSSM在windows平台NSSM可以把bat、exe等文件......
  • Mybatis输出完整Sql - Interceptor
    @Intercepts({@Signature(type=Executor.class,method="query",args={MappedStatement.class,Object.class,RowBounds.class,ResultHandler.class}),@Signature(type=Executor.c......
  • Windows bat批处理+PowerShell获取文件日期 和 时分秒
    前言全局说明Windowsbat批处理+PowerShell获取文件秒一、说明二、分开获取日期和时分秒获取bat文件自身的日期时间和时分秒1.源码文件名:get-file-second.bat@echooffchcp65001>nulecho.echo.setbak_file=get-file-second.bat::获取文件修改时间setloc......
  • Invicti Enterprise v24.1.0 for Windows - 企业应用安全测试
    InvictiEnterprisev24.1.0forWindows-企业应用安全测试InvictiEnterpriseOn-Premises09Jan2024v24.1.0请访问原文链接:InvictiEnterprisev24.1.0forWindows-企业应用安全测试,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgInvicti是一种自动化但......
  • SonarQube 10.4 (macOS, Linux, Windows) - 清洁代码 (Clean Code)
    SonarQube10.4(macOS,Linux,Windows)-清洁代码(CleanCode)SonarQubeDataCenterEdition(JavaAppformacOS,Linux,Windows)请访问原文链接:SonarQube10.4(macOS,Linux,Windows)-清洁代码(CleanCode),查看最新版。原创作品,转载请保留出处。作者主页:sysin.or......
  • Studio 3T 2024.1 (macOS, Linux, Windows) - MongoDB 的专业 GUI、IDE 和 客户端,支持
    Studio3T2024.1(macOS,Linux,Windows)-MongoDB的专业GUI、IDE和客户端,支持自然语言查询TheprofessionalGUI,IDEandclientforMongoDB请访问原文链接:Studio3T2024.1(macOS,Linux,Windows)-MongoDB的专业GUI、IDE和客户端,支持自然语言查询,查看最新版......
  • 若依前后端分离版如何集成的mybatis以及修改集成mybatisplus实现Mybatis增强
    场景若依前后端分离版手把手教你本地搭建环境并运行项目:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/108465662SpringBoot中使用PageHelper插件实现Mybatis分页:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/136189442在上面搭建若依前后端分......