2017-06-06 7 views
0

バッチ内の文字で終わるすべての変数をループする簡単な方法があるのだろうか?例えばバッチ内の文字で終わるすべての変数をループする

、私は次の変数が設定されている:配列を使用するためのオプションではありません

for %%a in ("%id*%") do echo %%a 

:*何かのように

SET id1=something 
SET id2=something1 
SET id3=something3 

が、私はそれらをループIDを使用したいです私が持っているユースケース。

いずれのアイデアも非常に高く評価されます。

+0

変数は文字またはその値で終わりますか? – npocmaka

+0

@npocmaka変数はそうします。 – Spaniard89

+0

ここにあるもの_添え字の大括弧を省略した配列です。つまり、バッチファイル 'id1'は' id [1] 'と全く同じですが、2番目の形式はより明確です。私はあなたに[この回答](https://stackoverflow.com/questions/10166386/arrays-linked-lists-and-other-data-structures-in-cmd-exe-batch-script/10167990#10167990)を読むようお願いします。また、[this one](https://stackoverflow.com/questions/10544646/dir-output-into-bat-array/10569981#10569981) – Aacini

答えて

1

あなたが探している答えは:

For /F "Tokens=1* Delims==" %A In ('Set id') Do @Echo Variable %A is %B 

ダブル:

Set id 

あなたは、あなたがforループにそれを置くことができ、最大の結果を分割することができるようにしたい場合%をバッチファイルに入れます。

+0

ありがとうございますが、上記のコードで何が起こっているのか説明できますか? – Spaniard89

+0

'Set id'は、名前が' id'を始めるすべての変数を出力します。 'For'ループは出力を2つのトークンに分割します。' 1 'は '%A' _(最初のデリミタ' = 'まで)_と' * 'は'%B' _デリミタ)_。詳細は 'For /?'と 'Set /? 'を見てください。 – Compo

関連する問題