构建环境变量使用一种在命令提示符环SET
-
21-09-2019 - |
题
我有以下命令提示命令麻烦(在Windows XP)。
set SOMEVAR=
for /F %i in (1 2 3) do set SOMEVAR=%SOMEVAR% "%i"
echo %SOMEVAR%
我希望它来建立的 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 的循环?
这是我目前使用的一种解决方法是让的的循环调用的BAT文件的本地标签,该标签的设置的S中的变量本身以及 %1 ,然后跳转到的:EOF 即可。它的工作原理,但我想弄清楚,如果有一种方式来获得它在一个行工作,而无需调用和标签的开销。
解决方案
其一个选项必须启用
> help for
将解释
糟糕,我的意思
> help set
一定要一路读至底部
编辑:事实证明,你可以在一个单独打开这个批处理文件。 保存该文本作为temp.bat
SETLOCAL ENABLEEXTENSIONS
SETLOCAL ENABLEDELAYEDEXPANSION
set SOMEVAR=
for %%i IN (temp.*) DO set SOMEVAR=!SOMEVAR! "%%i"
echo %SOMEVAR%
其他提示
这里是一个等效替代方案中,使用VBScript这已经在系统上
somevar=""
For i=1 To 3
somevar=somevar & i
Next
WScript.Echo somevar
输出
C:\测试> CSCRIPT // NOLOGO test.vbs 123
另外,如果你要使用大量的这些东西,你可以使用VBScript的字典集合或阵列来存储你的变量。
不隶属于 StackOverflow