【问题标题】:Batch - For loop - saving each result as variable?批处理 - For 循环 - 将每个结果保存为变量?
【发布时间】:2017-07-12 15:28:47
【问题描述】:

我有这个 temp2.​​txt 文件:

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。如何调整循环以使其正常工作?

非常感谢!

【问题讨论】:

    标签: loops batch-file variables


    【解决方案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%
    

    【讨论】:

    • 完美!我尝试了很多延迟扩展和!但我忘记了迭代器!非常感谢。
    • 迭代器?我认为array terminology 将此部分称为 indexsubscript。见this answer
    猜你喜欢
    • 2019-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-13
    • 1970-01-01
    • 2016-04-14
    • 2013-08-08
    • 1970-01-01
    相关资源
    最近更新 更多