作者:youxi01 转载请注明出处
很多新手对于 if defined的用法可能没有了解过,也不太清楚它的功能,这里结合具体的例子做个简单的介绍。
defined 为E文,翻译过来即为 “定义”的意思,if defined可以理解为:如果 xx 已经被定义,则....
用法示例1:生成不重复的四个2位数字
演示代码:
- @echo off & setlocal enabledelayedexpansion
- echo 四个随机数字为:
- for /l %%i in (1 1 4) do (
- call :GetNum
- set num%%i=!var!
- echo !num%%i!)
- pause>nul
- :GetNum
- set var=100%random:~-2%
- set /a var=%var% %% 100 %=======这里用来消除类似 06 数字前面的0 ======%
- if not defined %var% (%=========如果没有被定义过,则说明该数字没有重复=======%
- set "%var%=A" %=========如果没定义,则定义该数字%
- goto :eof) %=========跳出标签===============%
- call :GetNum
-
复制代码
当然,实现的方法很多,但是这个方法速度比较快,比较方便而已(不过也不是最好的...)
用法示例2:检测用户输入是否为空(或者检测我们程序里的标志变量是否定义?)
示例代码:
- @echo off
- set "bathome=" %======清空变量======%
- set /p bathome=请输入(可以直接回车):
- echo.
- if defined bathome (echo 你输入的值为%bathome%) else echo 你输入了空值!
- pause>nul
复制代码
|