Вы можете сделать это в PowerShell, если ваши данные находятся в XML-файлах, считав ваши данные из XML-файла и сохранив его как объект XML-документа. Вы можете использовать это с комбинацией Get-ChildItem
, чтобы найти все XML-файлы в указанном пути.
$xml = [xml](Get-Content pom.xml)
$xml.dependencies.dependency.where({$_.groupId -eq "org.projectA"}) |
ForEach-Object {
$_.version="0.13.5-SNAPSHOT"
}
$xml.Save("c:\temp\pom-updated.xml")
В приведенном выше примере я читаю данные xml из исходного файла pom.xml. Затем сохраните обновленный объект xml в pom-updated.xml. Я считаю, что Save()
метод требует полный путь к выходному файлу.
Для повторного просмотра всех файлов и перезаписи файлов с обновленными значениями вы можете сделать следующее:
foreach ($xmlFile in (Get-ChildItem -Path "c:\temp\test1" -recurse -include "*.xml" -File)) {
$xml,$xmlNodes = $null
$xml = [xml](Get-Content $xmlFile.fullname)
$xmlNodes = $xml.SelectNodes("//dependency").where({$_.groupId -eq "org.projectA"})
if ($xmlNodes) {
$xmlNodes | ForEach-Object { $_.version = "0.13.5-SNAPSHOT" }
$xml.Save($xmlFile.fullname)
}
}