注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

民主与科学

独立之人格,自由之思想

 
 
 

日志

 
 

if命令  

2011-04-16 11:17:50|  分类: DOS批处理 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

文章参照:http://blog.csdn.net/synior/archive/2010/09/21/5899666.aspx

if "参数" == "字符串"  待执行的命令

参数如果等于指定的字符串,则条件成立,运行命令,否则运行下一句。(注意是两个等号)

if "%1"=="a" format a:

if { %1 }=={ } goto noparms

if { %2 }=={ } goto noparms

if exist 文件名  待执行的命令

如果有指定的文件,则条件成立,运行命令,否则运行下一句。

if exist config.sys edit config.sys

if errorlevel / if not errorlevel 数字 

根据返回码和指定的数字进行比较来判断,如果条件成立,运行命令,否则运行下一句。

if errorlevel 2 goto x2  

DOS程序运行时都会返回一个数字给DOS,称为错误码errorlevel或称返回码,常见的返回码为01

更多内容参照《关于if errorlevel 命令

if else的组合

实例1

if exist test.ini (

echo 存在 test.ini 文件

) else (

echo 不存在 test.ini 文件

)

 if defined 存在判断

if definedif exist用法基本一样,但是if definedif exist多一个用法,就是用来判断环境变量是否存在。

实例2

@if defined name (

echo name is %name%

) else (

echo name is not initial

)

set name=robin

@if defined name (

echo name is %name%

) else (

            echo name is not initial

)

Pause

字符串的比较

if的常规用法只能判断字符串“等于”和“不等于”,而不能判断“大于”,“小于”,或“大于等于”,“小于等于”等。但在启用命令扩展名后我们就可以判断这些了

EQU等于

NEQ不等于

LSS小于

LEQ小于或等于

GTR大于

GEQ大于或等于

对于字母和符号的比较,cmd会先将这些转换成ascii比较。我们就可以用来判断字母与字母,字母与数字的大小了,,如a lss b

if后面加上/i的开关,在字母的比较中就不会区分大小写了,即,aA是相等的。

在这里,if的其它用法与常规用法均相同。

注意在默认情况下,cmd命令扩展名是被启用的

实例3

@echo off

set str0=robin

set str1=hb

@if %str0% EQU %str1% (

echo the two string is the same

) else (

            if %str0% LSS %str1% (

            echo the %str0% is less than %str1%

            ) else (

            echo the %str0% is big than %str1%

            )

)

set str0=Robin

set str1=robin

@echo 如果不忽略大小写:

@if %str0% EQU %str1% (

            echo the string %str0% and %str1% are the same

) else (

            echo the string %str0% and %str1% are not the same

)

@echo 如果忽略大小写

@if /i %str0% EQU %str1% (

            echo the string %str0% and %str1% are the same

) else (

            echo the string %str0% and %str1% are not the same

)

Pause

if cmdextversion number判断

if cmdextversionif errorlevel用法也基本一样,多了一个比较:与命令扩展名有关联的内部版本号比较。这个知道就可以了,基本上没有用。

  评论这张
 
阅读(636)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017