Batch file 评估批量从文件中读取的环境变量

Batch file 评估批量从文件中读取的环境变量,batch-file,environment-variables,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一起使用时,这是一个问题 如何评估环境变量 我尝试了setloc

我通过脚本读取文件
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
像done和周围一样。不幸的是,没有提供正确的输出。

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

@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