2017-07-12 95 views
1

我有這個temp2.​​txt文件:批處理 - For循環 - 將每個結果保存爲變量?

name    : XXX1 
name    : XXX2 

我想有後每個字「:」保存在不同的變量,這樣我就可以用命令的進一步處理它們。

我想:

for /f "tokens=1,2 delims=: " %%a in (C:\temp\temp2.txt) do (
set userloop1=%%b 
set userloop2=%%b 
) 


echo %userloop1% 
echo %userloop2% 

pause 

循環的作品,但每個變量包含循環,這是XXX2的最後一次出現。

我想要userloop1返回XXX1和userloop2重新調整XXX2。我如何調整循環以使其工作?

非常感謝!

回答

1

使用迭代器delayed expansion下:

setlocal enableDelayedExpansion 
set iterator=1 
for /f "tokens=1,2 delims=: " %%a in (C:\temp\temp2.txt) do (
    set userloop!iterator!=%%b 
    set /a iterator=iterator+1 
) 


echo %userloop1% 
echo %userloop2% 
+0

完美!我用delayedexpansion嘗試了很多東西,!!但我忘記了迭代器!非常感激。 – Rakha

+0

_Iterator_?我認爲[數組術語](https://en.wikipedia.org/wiki/Array_data_structure)稱這部分爲_index_或_subscript_。看到[這個答案](https://stackoverflow.com/questions/10166386/arrays-linked-lists-and-other-data-structures-in-cmd-exe-batch-script/10167990#10167990)。 – Aacini