曲径通幽论坛

标题: if defined [打印本页]

作者: easy    时间: 2014-6-1 00:23
标题: if defined
if defined 用来判断一个变量是否被定义,比如有:
  1. @echo off
  2. set a=10

  3. if defined a (echo 变量a 被定义) else echo 变量a 未被定义

  4. pause
复制代码

上面的 if 里使用了 else,那么之前的 echo 语句要用括号括起来,否则当 a 变量被定义时,会输出后面所有的内容( 变量a 被定义 else echo 变量a 未被定义)。


如果将 set 语句改写成 set a=,此时由于 a 没有一个赋值,它也会被认为是未定义的。


再看下面的例子:
  1. @echo off

  2. set "a=xyz"

  3. set a=%a:~1%

  4. if defined a (echo 变量a 被定义) else echo 变量a 未被定义

  5. set a=%a:~1%

  6. if defined a (echo 变量a 被定义) else echo 变量a 未被定义

  7. set a=%a:~1%

  8. if defined a (echo 变量a 被定义) else echo 变量a 未被定义

  9. pause
复制代码

输出结果:
变量a 被定义
变量a 被定义
变量a 未被定义
请按任意键继续. . .

上面程序中,a 初始时被赋予一个字符串 xyz,此后每次移动一位,当移到最后时,变量 a 为空,此时再测试时,会看到“未定义”提示。也就是说,一个变量未定义,或者其值为空时,都会被认为是 undefined 。







欢迎光临 曲径通幽论坛 (http://www.groad.net/bbs/) Powered by Discuz! X3.2