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

我必须使用/引用一个将作为命令行parameter passing的环境variables值。 像下面的东西

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

%%myvar%%我想引用那个环境variables的值

一个典型的调用这个脚本将是

 script.bat JAVA_HOME 

你不需要中间的myvarvariables。 如果你想要的话,那么只需将%myvar%replace为下面的%1

你需要两轮扩张。

选项1 – 呼叫

 @echo off call echo %%%1%% 

在第一个parsing阶段

  • %%扩展到%
  • %1扩展到JAVA_HOME
  • %%扩展到%

在CALL阶段, %JAVA_HOME%展开为您正在查找的值。

选项2 – 延迟扩展

 @echo off setlocal enableDelayedExpansion echo !%1! 

延迟扩展forms更容易阅读


请参阅Windows命令解释器(CMD.EXE)如何parsing脚本? 获取更多信息