Пакет: Как исправить неправильное поведение при перезаписи переменных при разборе вывода

В пакетном файле я проверяю информацию о базовой плате со следующим:
BaseboardCheck.cmd

@echo off
setlocal enabledelayedexpansion

for /f "tokens=1,2* delims==" %%a in ('wmic baseboard get /format:list') DO ( 

    if ["%%a"] EQU ["Product"] (
        set PlatformInfo=%%b

        if defined PlatformInfo (
            echo.!PlatformInfo!
            echo.!PlatformInfo!This overwrites the variable
        )
    )

    if ["%%a"] EQU ["Version"] (
        set BaseboardVersion=%%b

        if defined BaseboardVersion (
            echo.!BaseboardVersion!
            echo.!BaseboardVersion!This overwrites the variable
        )
    )   
)

Проблема выше: переменные перезаписываются, а не добавляются, когда выводится echo.
Выход:

DX79SI
This overwrites the variable
AAG28808-600
This overwrites the variable

То, что я хотел бы получить это:

DX79SI
DX79SIThis overwrites the variable
AAG28808-600
AAG28808-600This overwrites the variable

Я потратил несколько часов на это (и буду продолжать это делать), но надеюсь, что кто-то еще столкнулся с этой проблемой. И я надеюсь, что любой, кто столкнется с этой проблемой синтаксического анализа, сможет избежать ее в будущем.

Дополнительная проблема, которая возникает из-за этого, заключается в том, что она нарушает условную логику.

Обновить
После всей помощи я придумал это решение:

for /f "skip=2 tokens=1,2 delims=," %%a in ('wmic baseboard get Product^,Version^,Width /format:csv') do (

    set Platform=%%a
    set BaseboardVersion=%%b
)
echo.Platform: %Platform% 
echo.Version %BaseboardVersion%.

Ответы на вопрос(3)

Ваш ответ на вопрос