我有一个定义为LIST=(a b c d e)
的数组。 a, b, c, d, e
被设置为系统变量,例如。 a=AAA, b=BBB
等等。
在批处理脚本中,我想做一个for循环看起来像:
for %%i in %LIST% do echo %%i=%%%i% (unfortunately, this doesn't work)
我想要实现的是%%i (a) = %%%i% (%a%)
,它将被解析为系统变量,因此它不会显示为%a%
,而是会被解析为a=AAA
。
您是否知道如何在批处理脚本中执行此操作?
谢谢!
答案 0 :(得分:11)
for %%i in %LIST% do CALL echo %%i=%%%%i%%
应该解决你的问题。
答案 1 :(得分:3)
这是Lorenzo Donati的答案,但是稍微简单一点......
@echo off
setlocal enabledelayedexpansion
set LIST=(a b c d e)
set a=value of A
set b=value of B
set c=value of C
set d=value of D
set e=value of E
for %%G in %LIST% do echo %%G = !%%G!
答案 2 :(得分:1)
你想做什么并不是很清楚。试着看看这是否能解决你的问题:
@echo off
setlocal enabledelayedexpansion
set LIST=(a b c d e)
set a=value of A
set b=value of B
set c=value of C
set d=value of D
set e=value of E
:: deletes the parentheses from LIST
set _list=%LIST:~1,-1%
for %%G in (%_list%) do (
set _name=%%G
set _value=!%%G!
echo !_name! = !_value!
)
脚本打印名称以及名称在变量LIST
中列出的所有环境变量的相应值。