评估批量读取文件的环境变量

时间:2015-11-28 19:22:32

标签: batch-file environment-variables

我通过脚本读取文件repos.txt

@echo off

for /F %%s in (%~dp0repos.txt) do (
    echo %%s
)

文件repos.txt包含以下行:

%UserProfile%\Documents\Repository\A
%UserProfile%\Documents\Repository\B

echo命令为我提供了不评估环境变量%UserProfile%的目录。当我想将它与git一起使用时,这是一个问题。

如何评估环境变量?

我尝试setlocal喜欢完成here和周围的exclamation marks。不幸的是,没有什么能提供正确的输出。

1 个答案:

答案 0 :(得分:2)

命令调用可用于在分配给环境变量时扩展环境变量,如此代码所示:

@echo off
setlocal EnableDelayedExpansion
for /F "usebackq eol=| delims=" %%s in ("%~dp0repos.txt") do (
    set "RepositoryPath=%%s"
    echo Not expanded: !RepositoryPath!
    call set "RepositoryPath=%%s"
    echo And expanded: !RepositoryPath!
)
endlocal