2013-08-25 4 views
6

配列が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と解決されます。

バッチスクリプトで行う方法はありますか?

ありがとうございます!

答えて

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

はあなたの問題を解決する必要があります。

+0

これは魅力的に機能しました:)ありがとうございました! –

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に記載されているすべての環境変数の対応する値を出力します。

3

これはロレンツォドナーティの同じ答えですが、少し簡単な方法で...

@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! 
関連する問題