我在使用以下命令提示符命令时遇到问题(在 Windows XP 中)。
set SOMEVAR=
for /F %i in (1 2 3) do set SOMEVAR=%SOMEVAR% "%i"
echo %SOMEVAR%
我希望它构建SOMEVAR变量,以便它包含 for 循环中的每个项目,并用空格分隔: 1 2 3
然而,这是我得到的。
> set SOMEVAR=
> for /F %i in (1 2 3) do set SOMEVAR=%SOMEVAR% "%i"
>set SOMEVAR=%SOMEVAR% "1"
>set SOMEVAR=%SOMEVAR% "2"
>set SOMEVAR=%SOMEVAR% "3"
> echo %SOMEVAR%
%SOMEVAR% "3"
看起来环境变量在 FOR 循环期间没有更新和/或扩展。
任何想法如何使用FOR循环构建环境变量?
我目前正在使用的一种解决方法是让FOR循环调用 BAT 文件中的本地标签,该标签SET将变量自身加%1,然后跳转到:EOF。它可以工作,但我想知道是否有一种方法可以让它在一行中工作而无需调用和标签开销。