dos if 条件判断

2019-09-19 06:58:45王振洲

 "4" 语句中,实质是1与4的比较,1当然小于4,所以执行了后面的命令:echo 12竟然小于4哦?

☆建议:如果是字符串的比较就使用双引号"" 是数字的比较就不用双引号了!
------------------------------------------------------------------------------------------------------


3。判断判断驱动器,文件或文件夹是否存在,if exist filename command 语句
我们来瞧瞧这个判断驱动器,文件或者文件夹是否存在的语句,这里if exist filename 是表示:存在 filename的
意思。

例5

@echo off 
if exist "e:" (echo e盘存在) else echo e盘不存在 
pause>nul

这里是判断e: 是否存在!

例6

@echo off
if exist d:123.bat (echo 123.bat文件存在!) else echo 123.bat文件不存在! 
pause

这个例子是用来判断123.bat文件是否存在的,但并不严谨!如果123.bat是一个文件夹而不是一个文件时,上面的判
断就不行了!那么如何判断指定的文件123.txt是否存在?请看:

@echo off
dir /a-d d:123.bat >nul 2>nul
if %errorlevel%==0 (echo 123.bat文件存在!) else echo 123.bat文件不存在! 
Pause

先用dir的/a-d参数去除123.bat的目录属性,指定说明要搜索的123.bat是文件而不是文件夹,并把结果(包括正确
和错误)屏蔽(>nul 2>nul),如果dir找到了文件123.bat,那么其errorlevel值(dir命令的退出编码)会被设为0,否
则为1则是没有此文件。当然也可以用||和&&来判断。关于为什么要用if %errorlevel%==0 而不用if errorlevel 0
呢?在后面if errorlevel中会有说明!

例7

@echo off
if exist test (echo test 是文件夹) else echo test 是文件
pause

这里是判断文件夹是否存在。对于文件夹存在的判断,我们不可以用以下两种写法:

第①种

@echo off
if exist test. (echo test 是文件夹) else echo test 是文件
pause


第②种

@echo off
if exist testnul (echo test 是文件夹) else echo test 是文件
pause


4。判断变量是否已经定义,if defined 变量 command 语句
这是一个判断变量是否已被定义的语句,我们还是先看例子,

例8

@echo off
if defined a (echo 变量 a 已定义) else (echo 变量 a 没有被定义)
pause

执行后显示:变量 a 没有被定义

例9

@echo off
set a=
if defined a (echo 变量 a 已定义) else (echo 变量 a 没有被定义)
pause

执行后显示:变量 a 没有被定义

注意:set a=这后面是没有空格的。

例10

@echo off
set a=10
if defined a (echo 变量 a 已定义) else (echo 变量 a 没有被定义)
pause								 
			 
相关文章 大家在看