Compare 3 pares de arquivos XML usando o Windows Batch

Estou tentando criar um arquivo em lotes que lê 3 pares de arquivos XML idênticos armazenados em dois locais diferentes e compara se as versões de compilação são iguais ou não usando tags diferentes, como tag de compilação e menor nos arquivos xml.

Eu tenho 3 arquivos XML, master.xml, TGDD.xml e TMasterData.xml. Eu armazenei esses 3 arquivos xml em 2 locais diferentes e quero verificar se suas versões são iguais ou não nesses dois locais.

O código do lote é ..

@echo off
setlocal enableextensions disabledelayedexpansion

set "build=" 
set "build1="

set "gddbuild="
set "gddbuild1="

set "tbuild="
set "tbuild1="


set "ans=Master_Data version same"
set "wrong=Master_Data version not same"

set "ans1=TGDD version same"
set "wrong1=TGDD version not same"

set "ans2=TMasterData version same"
set "wrong2=TMasterData version not same"


for /f "tokens=3 delims=<>" %%a in ('
    2^>nul type "C:\Users\Lucy\Desktop\piller-uniblock\master.xml"
                "C:\piller-uniblock\master.xml"
    ^| find /i "<Build>" 
') do if not defined build ( set "build=%%a" ) else ( set "build1=%%a" )

IF "%build%"=="%build1%" ( echo %ans% ) else echo %wrong%

for /f "tokens=3 delims=<>" %%b in ('
    2^>nul type "C:\Users\Lucy\Desktop\piller-uniblock\TGDD.xml"
                "C:\piller-uniblock\TGDD.xml"
    ^| find /i "<Minor>" 
') do if not defined gddbuild ( set "gddbuild=%%b" ) else ( set "gddbuild1=%%b" )

IF "%gddbuild%"=="%gddbuild1%" ( echo %ans1% ) else echo %wrong1%


for /f "tokens=3 delims=<>" %%c in ('
    2^>nul type "C:\Users\Lucy\Desktop\piller-uniblock\TMasterData.xml"
                "C:\piller-uniblock\TMasterData.xml"
    ^| find /i "<Build>" 
') do if not defined tbuild ( set "tbuild=%%c" ) else ( set "tbuild1=%%c" )

IF "%tbuild%"=="%tbuild1%" ( echo %ans2% ) else echo %wrong2%

A saída..

Mesmo que o código acima esteja sendo executado corretamente no prompt de comando, não consigo entender como tornar o código acima mais eficiente, ou seja, sem usar 3 para loops.

O código para os 3 arquivos XML são ...

master.xml

<?xml version="1.0" encoding="UTF-8"?>
<CDMDataXML xmlns="http://www.avocent.org/trellis/CDMLoaderXMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.avocent.org/trellis/CDMLoaderXMLSchema CDMLoaderXMLSchema.xsd">
<CDMDataVersion>
<Major>1</Major>
<Minor>0</Minor>
<Build>50</Build>
<Delimiter>.</Delimiter>
</CDMDataVersion>

TGDD.xml

 <?xml version="1.0" encoding="utf-8"?>
 <TrellisGdd xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
 <TrellisVersion>
 <VersionId>1</VersionId>
 <Major>3</Major>
 <Delimiter>.</Delimiter>
 <Minor>32</Minor>
 <LastDictionaryEntry>3806</LastDictionaryEntry>
 </TrellisVersion>

TMasterData.xml

<?xml version="1.0" encoding="UTF-8"?>
<CDMDataXML xmlns="http://www.avocent.org/trellis/CDMLoaderXMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.avocent.org/trellis/CDMLoaderXMLSchema CDMLoaderXMLSchema.xsd">
 <CDMDataVersion>
    <Major>3</Major>
    <Minor>0</Minor>
    <Build>15</Build>
    <Delimiter>.</Delimiter>
 </CDMDataVersion>

questionAnswers(1)

yourAnswerToTheQuestion