2017-06-06 79 views
0

我想知道是否有簡單的方法來循環所有以批處理中的字符結尾的變量?循環遍歷所有以字符結尾的變量

舉例來說,我有以下變量設置:

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

話,我想通過他們循環使用標識*類似:

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

使用陣列是不是爲一個選項我有使用案例。

任何想法將不勝感激。

+0

變量以字符或它們的值結尾? – npocmaka

+0

@npocmaka變量可以。 – Spaniard89

+0

你在這裏有一個數組,其中省略了下標的方括號。也就是說,在批處理文件中,'id1'完全等同於'id [1]',但第二種形式更清晰。我邀請你閱讀[這個答案](https://stackoverflow.com/questions/10166386/arrays-linked-lists-and-other-data-structures-in-cmd-exe-batch-script/10167990#10167990)也[這一個](https://stackoverflow.com/questions/10544646/dir-output-into-bat-array/10569981#10569981) – Aacini

回答

1

你要找的答案是:

Set id 

如果你希望能夠到了分裂的結果,那麼你可以把它變成一個for循環:

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

兩倍%在批處理文件中。

+0

感謝它的作品,但你能解釋上面的代碼中發生了什麼? – Spaniard89

+0

'Set id'輸出所有名稱以'id'開始的變量。 'For'循環把輸出分成兩個標記,'1'是'%A' _(所有的東西都到第一個定界符'=')_和'*'是'%B'_(包含所有其他的東西分隔符)_。查看'For /?'和'Set/?'獲取更多信息。 – Compo