2017-10-05 84 views
1

我嘗試使用「set」和for-loop通過批處理命令獲取值。如何通過批處理文件使用for循環獲取'SET'變量?

set A=123,456 

@for /f "delims=," %%i in ("%A%") do (
    echo %%i 

) 

我期待的結果如下。

123 
456 

但它只能顯示123 :(

是否有可能使用循環變量通過批處理文件來獲得「SET」?

PS我已經在計算器一直在尋找這個問題,有沒有類似的問題。 如果存在重複的問題,請讓我知道,謝謝!^^

+0

你似乎誤解了'對/ F'循環:它能夠分裂一行文本到多個標記,但這些都不是通過迭代,該令牌在返回相同的迭代,但由多個循環變量('%% i','%% j'等等)決定,具體取決於提供的選項字符串;有關詳細信息,請參閱[FOR /F](http://ss64.com/nt/for_f.html)... – aschipfl

回答

2

嘗試使用:

@echo off 
@setlocal enabledelayedexpansion 

set a=123,456,789 
:a 
for /f "delims=," %%i in ("%a%") do (
    echo %%i 
    set a=!a:%%i=! 
    goto a 
) 
3

用一個簡單的for

for %%i in (%A%) do echo %%i 
+0

這對我來說也是有效的,我要提交 – Brettski

+0

感謝回覆, 我想要「123」和「456」不是「123,456」。 – betty

+4

如果您將我發佈的代碼剪切並粘貼到'for'語句的位置,那就是您將得到的。 – Magoo

相關問題