批处理文件设置环境变量

时间:2014-06-23 22:13:03

标签: batch-file for-loop

我目前在我的批处理文件中有这个代码,用于在变量%% i中存储一个值:

FOR /F %%i in (AylaUnits.txt) DO set %%i 
set "$Unit=%%i"
echo The unit is : %$Unit%
Pause

这似乎循环好了,但对于每个项目,我得到了这个回复:

set AC000W000004591
Environment variable AC000W000004595 not defined
The unit is : %i

文本文件中将有100多个不同的行。我是否需要为每个变量创建一个环境变量?我不认为这是最好的方法,而且我不确定我是否正确理解环境变量。

如果有任何重要的话,我需要将文件的每一行插入网址部分。

谢谢, DM

1 个答案:

答案 0 :(得分:1)

您遇到语法问题,请参阅下面的建议更改:

SETLOCAL ENABLEDELAYEDEXPANSION
FOR /F %%i in (AylaUnits.txt) DO (
    set "$Unit=%%i"
    echo The unit is : !$Unit!
)
Pause

请参阅上面的编辑,因为我们在for循环中设置变量,我们需要使用SETLOCAL ENABLEDELAYEDEXPANSION来展开它。由于我们正在扩展for循环中设置的var,因此在使用这些变量时我们需要使用!而不是%