如何检查是否在Windows批处理脚本中定义了环境变量

时间:2017-04-10 20:38:22

标签: windows batch-file environment-variables

我正在尝试创建一个批处理文件来检查环境变量是否已定义或未定义,如果是,则提供某个输出语句。这就是我所拥有的,我似乎无法让程序告诉我任何参数都是定义的。

if not defined "%MyVar%" (
    echo MyVar is NOT defined
)

if defined "%MyVar%" (
    echo MyVar IS defined 
)

1 个答案:

答案 0 :(得分:8)

我认为你的意思是写:

if not defined MyVar (
  echo MyVar is NOT defined
)

if defined MyVar (
  echo MyVar IS defined 
)

这是因为如果将变量括在%个字符内,cmd.exe将扩展对变量的内容的引用。 (您想知道是否定义了变量本身,而不是定义了具有该变量的 content 名称的变量。)

请注意,环境变量%个字符中的名称)与可替换参数%0%1等不同)。

我建议切换到Windows PowerShell,因为它具有内置的参数解析功能,可变范围,实际功能等等。