这是一个使用修改后的变量名称简化示例,展示了我想要做的事情。为了简单起见,我展示了命令行版本而不是批处理版本。
我正在执行以下操作。
我正在执行以下操作。
> echo %foo%
%foo%
然而,如果foo是一个有效的环境变量,由于环境变量扩展,我将无法获得期望的输出(%foo%
)。
> set foo=bar
> echo %foo%
> echo %%foo%%
bar
%bar%
现在,我有一个技巧(如下例所示)可以实现这个功能,但我想知道是否有更简洁的方法来输出%
字符或抑制环境变量扩展。
> set foo=bar
> set percent=%
> echo %percent%foo%percent%
%foo%
此外,如果所需解决方案在 bat 文件中与默认不同(例如使用 %%
而非 %
或者 %1%
而非 %1
),请告诉我。
我的实际用例是在一个带有 SETX
命令的 bat 文件中设置依赖于其他环境变量扩展的全局环境变量,但我很好奇如何在 DOS 或 cmd 中进行扩展。
FOO_SDK_BIN=%FOO_SDK%/BIN
的东西,但不要使用SETX来展开%FOO_SDK%
。然后,如果我使用SETX更改了FOO_SDK变量路径,则所有依赖它的变量也将被正确地重新定位。这只是为了创建一个脚本,简化我们使用第三方SDK的许多类似此类的环境变量的开发机器的设置。 - Adisaksetx
不是 DOS 命令。DOS 和 cmd.exe 不是同一件事情。 - phuclv