[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[数值计算] 批处理延迟环境变量扩容和直接变量扩容有什么区别?

刚开始接触批处理,在看set命令帮助文件中发现一个问题,请教一个延迟环境变量扩容和直接变量扩容的区别:
在帮助文件中,有以下一段代码:
  1.     set VAR=before
  2.     if "%VAR%" == "before" (
  3.         set VAR=after
  4.         if "%VAR%" == "after" @echo If you see this, it worked
  5.     )
复制代码
按我的理解,程序执行的时候都是按照代码中的次序依次执行的,最后的结果应该是输出"If you see this, it worked”
但是帮助文件中给出的解释是:
不会显示消息,因为在读到第一个 IF 语句时,BOTH IF 语句中
的 %VAR% 会被代替;原因是: 它包含 IF 的文体,IF 是一个
复合语句。所以,复合语句中的 IF 实际上是在比较 "before" 和
"after",这两者永远不会相等。
有朋友给详细介绍下为什么吗?谢谢

多谢各位朋友的解答和版主的详细解释,正在看论坛的精华帖和从入门到精通系列,收获颇多,多谢!

TOP

返回列表