如何在 DOS 中的变量中回显环境变量

如何在 DOS 中的变量中回显环境变量

我不确定这个问题是否正确,但我正在尝试为我的问题找到解决方案,如下所示:

set var1=ABC
set otherevars=C:\temp2
set %var1%dfts=C:\temp\test

到上面一行为止一切都正常,但是,我们可以得到下面的值吗

我正在寻找设置另一个环境变量,如下所示:

echo set projdeflts=%var1%dfts;%otherevars%
                    ^^^^^^^^^^

我期望项目为 C:\temp\test;C:\temp2

答案1

您的问题在于 cmd 脚本的解析方式。它只解析一次,因此,当涉及到此行时:

echo set projdeflts=%var1%dfts;%otherevars%

%var1% 按原样进行评估,从而得到 ABCdfts。您不能嵌套这些查找。但鉴于所有信息都已包含在脚本本身中,您可以直接调用结果。例如:

echo set projdeflts=%ABCdfts%;%otherevars%

如果您想要控制嵌套变量分配,则需要切换到更强大的脚本语言,例如 Powershell。

然后你只需这样做:

$var = @{"var1" = "ABC"}
$var.var1 #(which prints ABC)

要不就

$var1 = "ABC"
$var1 #(which prints ABC)

相关内容