Lar*_*811 13 windows variables cmd batch-file
这是一个简单但令人费解的问题.
对于未定义的Windows环境变量,例如abc
在命令提示符窗口中,ECHO [%abc%]导致[%abc%]
但在.CMD批处理文件中,ECHO [%abc%]导致[]
为什么不同?我研究了ECHO命令,但却找不到任何相关信息.我担心这个微妙差异可能适用于何处.
Dáv*_*nár 1
真是个好问题!令人困惑吧?
实际上有两个不同的解析器用于解析批处理脚本和命令行命令。
引用这个优秀的答案:
BatchLineParser- 批处理文件内的解析器,用于行或块 CmdLineParser- 与 类似BatchLineParser,但直接在命令提示符下工作不同
BatchLineParser- 批处理文件内的解析器,用于行或块
BatchLineParser
CmdLineParser- 与 类似BatchLineParser,但直接在命令提示符下工作不同
CmdLineParser
主要区别在于解析的第一阶段,特别是扩展%var%:
%var%
如果BatchLineParser不var存在,则将被替换为空;如果CmdLineParser未定义var,则表达式将保持不变。
var
那么为什么有人要这样设计呢?我完全不知道。
归档时间:
8 年,7 月 前
查看次数:
239 次
最近记录:
8 年,5 月 前