6

我有一个定义为的数组LIST=(a b c d e)。被a, b, c, d, e设置为系统变量,例如。a=AAA, b=BBB, ETC。

在批处理脚本中,我想做一个看起来像这样的 for 循环:

for %%i in %LIST% do echo %%i=%%%i% (unfortunately, this doesn't work)

我想要实现的是%%i (a) = %%%i% (%a%),它将被解析为系统变量,因此%a%它不会显示,而是被解析为a=AAA.

您知道如何在批处理脚本中执行此操作吗?

谢谢!

4

3 回答 3

11
for %%i in %LIST% do CALL echo %%i=%%%%i%%

应该可以解决您的问题。

于 2013-08-26T02:22:23.320 回答
3

This is the same answer of Lorenzo Donati, but in a slightly simpler way...

@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!
于 2013-08-26T01:06:54.320 回答
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

于 2013-08-25T23:40:20.420 回答