У меня проблемы со следующими командами командной строки (в 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 . Это работает, но я хотел бы выяснить, есть ли способ заставить его работать в одну строку без затрат на вызов и метку.