1 、

set var=Tom

if %var%==Tom echo It works

if %var%==Jerry echo We will never see this

如果变量 var 的值为 Tom Hanks ,即中间含有空格之类的特殊符号,那么我们在使用 if 时,就得为字符串加上双引号,就像 if "%var%"=="Tom Hanks" echo It works (注意,给字符串加上双引号后,在进行判断的时候会连双引号一起考虑进去。所以,为了使两边的对比均衡,所以一定要在 == 两边的两个字符串上同时都加双引号)。这里也体现了批处理程序语言格式的多样性(如果您熟悉 C 语言格式的话,就知道一串字符总是要被双引号引起来)。不过为了方便记忆,我们在使用 if 的时候,不妨总是在字符串上使用双引号,这样既好阅读,又不容易引起歧异。

::::::::::改变颜色.bat::::::::::

@echo off

echo 您希望字体的颜色是红色还是绿色?

:RETRY

set /p choice=请输入您的选择,R 或者 G :

if "%choice%"=="R" goto R

if "%choice%"=="r" goto R

if "%choice%"=="G" goto G

if "%choice%"=="g" goto G

goto RETRY

:R

color c

echo 您选择了红色字体

pause

exit

:G

color a

echo 您选择了绿色字体

pause

exit

2、

ielse 无法单独使用,必须与 if 配合连用。

:::::::::else的用法.bat:::::::::

@echo off

if "%TIME:~0,2%" lss "12" (

echo 现在是上午

) else (

echo 现在是下午

)

pause

 

3、此外,if 还有其他的用法—— if exist 和 if defined 。if exist 可判断文件是否存在,就像这样:

if exist "D:\test my folder\a.txt" (

del "D:\test my folder\a.txt"

) else (

echo 您所要删除的文件不存在

)

而对于 if defined 来说,与 if exist 类似,只不过 if defined 的判断对象不是文件,而是变量,它用于判断环境变量是否被定义。