如何将环境变量的名称作为参数传递?

时间:2018-05-10 20:01:20

标签: windows batch-file cmd

我有一个带有一个输入参数%1的batch.bat。我想以:batch.bat PATH启动脚本。我希望这能用echo显示PATH环境变量。

我试过了:

@echo %1
E:\>batch.bat PATH
PATH

但我想拥有PATH环境变量的内容。

E:\>batch.bat PATH
C:\Windows;   

1 个答案:

答案 0 :(得分:3)

您需要延迟扩展才能输出cmd行参数引用的变量 此批次使用两种不同的方法,

  • 一个带有双倍百分号的伪调用(强制解析器两次评估该行,第一次通过时将第二次传递减少两个%%到一次,其他变量已经扩展)
  • 使用!代替普通单一百分号,使用先前的命令setlocal enabledelayedexpansion
:: Q:\Test\2018\05\10\SO_50280684.cmd
@Echo off&SetLocal EnableDelayedExpansion
Echo(%1
Echo(!%1!
Call Echo(%%%1%%

我使用命令分隔符(代替空格来抑制空变量的Echo is off消息。

带命令的示例

>SO_50280684.cmd PROCESSOR_ARCHITECTURE
PROCESSOR_ARCHITECTURE
AMD64
AMD64