如何从传递的命令行参数获取环境变量的值

如何从传递的命令行参数获取环境变量的值

我必须使用/引用将作为命令行参数传递的环境变量值。如下所示

set myvar=%1
echo Value of %myvar% is %%myvar%%

在这里%%myvar%%我想引用该环境变量的值

该脚本的典型调用如下

script.bat JAVA_HOME

答案1

您不需要中间myvar变量。如果您需要它,则只需替换以下%myvar%内容即可%1

你需要两轮扩张。

选项 1 - 致电

@echo off
call echo %%%1%%

在第一个解析阶段

  • %%扩展为%
  • %1扩展为JAVA_HOME
  • %%扩展为%

在 CALL 阶段,%JAVA_HOME%扩展为您要查找的值。

选项 2——延迟扩张

@echo off
setlocal enableDelayedExpansion
echo !%1!

延迟扩展形式更容易阅读


Windows 命令解释器(CMD.EXE)如何解析脚本?了解更多信息

相关内容