如何在从文件读取的字符串中扩展环境变量?

Fuz*_*uze 1 batch-file environment-variables

我有一个包含路径列表的文件。其中一些可能包括环境变量,例如%USERPROFILE%.

例子:

%USERPROFILE%\dir
C:\another\dir
Run Code Online (Sandbox Code Playgroud)

然后我正在阅读所有行并;使用此代码连接(由于 git,cat 和 tr 命令可用):

set include_file=C:\path\to\file.txt
for /f "delims=" %%i in ('cat %include_file% ^| tr "\\n" ";"') do set include_content=%%i
Run Code Online (Sandbox Code Playgroud)

这将创建一个带有字符串的变量%USERPROFILE%\dir;C:\another\dir 通常运行echo %USERPROFILE%会给你类似的东西C:\Users\xxx\dir但是运行它只%include_content%输出原始字符串而不扩展%USERPATH%

我的最终计划是像这样将目录添加到我的 PATH 中,set PATH=%include_content%;%PATH%但这不起作用,因为变量没有扩展。

我的问题是我可以以某种方式扩展字符串中的变量,以便将真实目录添加到路径中吗?

jeb*_*jeb 5

您可以使用CALL.

所以这应该可以完成工作

call set "include_content=%include_content%"
Run Code Online (Sandbox Code Playgroud)

在 for 循环之后