代码编织梦想

Windows批处理中的if判断

if 命令是批处理程序中条件判断的命令,根据得出的判断结果,执行相对应的操作。
if 命令基本有以下几种用法 。

1、判断指定的文件名是否存在

IF [NOT] EXIST filename command

@echo off
if not exist ./test.bat echo test.bat is not exist!
if exist ./temp.bat call temp.bat
pause

执行结果:

test.bat is not exist!
这是一个临时的测试批处理
请按任意键继续. . .

2、判断数值或者字符串相等

IF [/I] string1 compare-op string2 command
/I 开关 (如果指定) 说明要进行的字符串比较不分大小写
其中, compare-op 可以是:

EQU - 等于
NEQ - 不等于
LSS - 小于
LEQ - 小于或等于
GTR - 大于
GEQ - 大于或等于
@echo off

set "str1=this ia a test!"

set "str2=hello world!"

set num=100

if "%str1%"=="%str2%" (echo str1 等于 str2) else echo str1 不等于str2

if "%str2%" equ "Hello World!" (echo %str2% ) else (echo str2 不等于 Hello World)

if /i "%str2%" equ "Hello World!" (echo %str2% ) else (echo str2 不等于 Hello World)

if %num% equ 100 (echo num 等于 100) else echo num 不等于 100


pause

执行结果:

str1 不等于str2
str2 不等于 Hello World
hello world!
num 等于 100
请按任意键继续. . .

3、结合 ERRORLEVEL 使用

if errorlevel value command 含义:如果返回的错误码值大于或等于 value 时,将执行 cmmand

@echo off

:START
choice /c YNC /m "确认请选Y,否请按N,取消按C." /T 3 /D C
if errorlevel 3 goto CANCEL
if errorlevel 2 goto NO
if errorlevel 1 goto YES

:YES
echo 你的选择是YES!
goto END

:NO
echo 你的选择是NO!
goto END

:CANCEL
echo 你的选择是CANCEL!

:END
goto START

pause

执行结果:

确认请选Y,否请按N,取消按C. [Y,N,C]?Y
你的选择是YES!
确认请选Y,否请按N,取消按C. [Y,N,C]?N
你的选择是NO!
确认请选Y,否请按N,取消按C. [Y,N,C]?C
你的选择是CANCEL!
确认请选Y,否请按N,取消按C. [Y,N,C]?

4、判官变量是否已经被定义

@echo off

set "str=this ia a test!"

set num=100

if defined str echo str 已经被定义了

if defined num echo num 已经被定义了

if not defined var echo var 没有被定义

pause

执行结果:

str 已经被定义了
num 已经被定义了
var 没有被定义
请按任意键继续. . .

5、else 使用的注意事项

ELSE 子句必须出现在同一行上的 IF 之后。例如:

    IF EXIST filename. (
        del filename.
    ) ELSE (
        echo filename. missing.
    )
由于 del 命令需要用新的一行终止,因此以下子句不会有效:

IF EXIST filename. del filename. ELSE echo filename. missing

由于 ELSE 命令必须与 IF 命令的尾端在同一行上,以下子句也
不会有效:

    IF EXIST filename. del filename.
    ELSE echo filename. missing

如果都放在同一行上,以下子句有效:

    IF EXIST filename. (del filename.) ELSE echo filename. missing
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/annita2019/article/details/127168712

批处理下if()else无法正常执行_schwi211的博客-爱代码爱编程

批处理下if()else无法正常执行 作为一个非计算机相关专业小白,我最初写了: if "%a%"=="0" goto :0 if "%a%"=="1" goto :1 if "%a%"=="2" goto

打开windows批处理大门-爱代码爱编程

大家好,我是xiezhr。 1 前言 打开历史文章一看,上一篇文章是2021年3月20号更新的,又拖更了。 一个原因是,最近工作上真的挺忙的,有比较着急需要加班加点赶的需求。好在清明前算是把比较着急的改好了。本来安排清明也是要加班的,但是真的加不动了。(连着加班真的挺影响效率的,适当休息是非常有必要的~) 以至于一周都是在连轴转,需求改好更新之

Windows常用批处理命令-爱代码爱编程

前言 批处理文件是一个“.bat”结尾的文本文件,这个文件的每一行都是一条DOS命令。可以使用任何文本文件编辑工具创建和修改。批处理是一种简单的程序,可以用 if 和 goto 来控制流程,也可以使用 for 循环。批处理的编程能力远不如C语言等编程语言,也十分不规范。每个编写好的批处理文件都相当于一个DOS的外部命令,把它所在的目录放到DOS搜索路径(

windows 批处理程序-爱代码爱编程

Bat 命 令 解 释 @ 命令:为不显示。 REM 命令:是个注释命令。 ECHO 命令:是打开ECHO命令显示功能。 命令详细解释: ( echo on )为打开ECHO命令显示功能。执行以后,后面所有的命令均不显示,包括本条命令。 在echo on情况下:rem注释的语句在程序运行时被打印出来。( echo off )为关闭ECHO命

windows批处理常用命令总结(二)_进无止进的博客-爱代码爱编程

接windows批处理常用命令总结(一)。 4. call, start, goto, set 1. call call用来调用执行另一个bat或者cmd文件(当然也可执行其它格式的可执行文件),它不会终止父批处理程序的执行。 rem 调用同一个目录下的另一个批处理文件 leeyn.bat call leeyn.bat 2. star