Анализ XML-файла для значения элемента с помощью пакетного файла

У меня есть файл XML, в котором я могу получить значение элемента с помощью следующей команды PowerShell.

PS C:\> $xmlDoc = Get-Content [fullPathToXmlFile]
ps C:\> $xmlDoc.GetElementsByTagName("MyElement")

Поскольку в указанном документе Xml есть только 1, я получаю такой результат:

[Значение, содержащееся в теге.]

Моя проблема заключается в том, что я не знаю, как использовать аналогичный сценарий в пакетном файле для сохранения этого значения в переменной.

Моя цель — извлечь одно значение из уникального элемента в документе Xml через пакетный файл, чтобы эту переменную можно было использовать в том же пакетном файле.

Пример:

set MyVar = someMethodToExtractMyElementsValue //Этот метод приведет к целому числу

Затем я буду использовать %MyVar% как часть полного пути позже в пакетном файле.


person rharrison33    schedule 13.08.2014    source источник
comment
Итак, ваша цель — запросить XML в пакетном (.cmd/.bat) файле?   -  person Andy Arismendi    schedule 14.08.2014
comment
Если вы не можете использовать powershell, лучше всего использовать vbscript из командного файла или загрузить сторонний xml-парсер exe.   -  person Andy Arismendi    schedule 14.08.2014


Ответы (1)


Из пакетного скрипта вызовите свой фрагмент следующим образом:

set d = powershell -noprofile "& { $xmlDoc.GetElementsByTagName("MyElement") }"

если код более сложный, поместите его в файл .ps1 и выполните скрипт вместо блока скриптов.

Надеюсь это поможет

person Jason Horner    schedule 14.08.2014
comment
Это устанавливает d в строковый литерал. Что мне не хватает? - person rharrison33; 14.08.2014