曲径通幽论坛

 找回密码
 立即注册
搜索
查看: 3098|回复: 0
打印 上一主题 下一主题

[语法] if defined

[复制链接]

716

主题

734

帖子

2946

积分

超级版主

Rank: 9Rank: 9Rank: 9

积分
2946
跳转到指定楼层
楼主
发表于 2014-6-1 00:23:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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 。


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|曲径通幽 ( 琼ICP备11001422号-1|公安备案:46900502000207 )

GMT+8, 2025-6-18 03:19 , Processed in 0.063107 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表