语句结构(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="可以取消变量,收回变量所占据的内存空间。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!