次のコマンドプロンプトコマンドで問題が発生しました(Windows XPの場合)。
set SOMEVAR=
for /F %i in (1 2 3) do set SOMEVAR=%SOMEVAR% "%i"
echo %SOMEVAR%
forループ内の各項目が引用符で囲まれ、スペースで区切られるようにSOMEVAR変数を作成することを期待しています。 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ファイルのローカルラベルを呼び出し、変数をそれ自体に%1を加えたものに設定してから、 :EOFにジャンプすることです。それは機能しますが、呼び出しとラベルのオーバーヘッドなしで1行で機能させる方法があるかどうかを知りたいと思います。