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

DJe*_*zus 4 windows batch-file environment-variables

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

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

if defined "%MyVar%" (
    echo MyVar IS defined 
)
Run Code Online (Sandbox Code Playgroud)

Bil*_*art 11

我想你的意思是写:

if not defined MyVar (
  echo MyVar is NOT defined
)
Run Code Online (Sandbox Code Playgroud)

if defined MyVar (
  echo MyVar IS defined 
)
Run Code Online (Sandbox Code Playgroud)

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

需要注意的是环境变量(在名称%字符)是从不同的替换参数(%0,%1,等).

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