Что ж, ваш комментарий к XML будет вызывать некоторые проблемы с синтаксическим анализом - но ради ответа на вопрос я предположу, что его нет в реальной жизни. Самый простой способ справиться с XML в PowerShell - это обработать его как строку и привести его к объекту XML:
$xml = [xml](Get-Content c:\temp\config.xml)
Теперь, когда у вас есть переменная xml, вы можете делать классные вещи, такие как:
$xml.config.compare.source
Который поместит строку "d: \ demo \" в конвейер, и в этом случае дальнейшая обработка не происходит, и она выводит ее. Получение других элементов должно быть довольно простым, хотя несколько тегов параметров обрабатываются аналогично массиву:
$xml.config.compare.parameters.parameter[0]
Записать вывод можно так же просто, как просто перенаправить вывод:
$xml.config.compare.source >> c:\temp\output.txt
Один знак «больше» будет перезаписывать содержимое файла, двойной - для добавления.