Пожалуйста, используйте ответ Кейта Хилла, я оставляю здесь свой отзыв. Он прав, лучше изменить его с помощью XML API. Я никогда не использую XML, я не знаком с ним, поэтому я даже не думал об этом.
Я должен спросить, вы попробовали что-нибудь для этого? Вы искали ответ? Это довольно простой материал, который, возможно, за минуту или две на Google, вероятно, заставил бы вас ответить.
(Get-Content "C:\Source\SomeFile.XML") -replace "My Application","Shiny New App"|Set-Content "C:\Source\SomeFile.XML"
Или, если вы хотите изменить что-то менее конкретным, например, слово «андроид» для платформы тега можно просто включить тег, чтобы убедиться, что он получает правильную вещь. (Некоторые сокращенная используется в данном примере)
(GC "C:\Source\SomeFile.XML") -replace "<platform>android</platform>","<platform>tacos</platform>"|SC "C:\Source\SomeFile.XML"
Серьезно, хотя, по крайней мере, попытаться помочь себе, прежде чем приходить и просить, чтобы быть ложечки кормили ответы. Я просто попал в Google и искал «powershell replace text in file», и самая первая ссылка дала бы вам ответ.
Редактировать:
Не зная, что вы ищете и идете исключительно на основе тегов, вам необходимо выполнить поиск RegEx (Regular Expression).
(GC "C:\Source\SomeFile.XML") -replace "(?<=`<platform`>).*?(?=`</platform`>)", 'New Platform'
Это будет тянуть содержимое файла, искать любую длину текста, который предшествует и за которым следует и заменить этот текст с «Новой платформой». Обратите внимание, что символы Greater Than и Less Than экранированы с серьезным символом (слева от 1 и над вкладкой на клавиатуре). Вот разбивка RegEx: (?<=<platform>)
Проверяет, что непосредственно перед строкой, которую мы ищем, является строка <platform>
. Это не будет заменено, это просто гарантирует, что у нас есть правильная отправная точка.
.*?
выполняет поиск любого количества символов, кроме новой строки, и допускает, что он может быть пустым. Это наш матч, который будет заменен.
(?=</platform>)
Проверяет, что сразу после строки, которую он только что нашел, должна быть строка </platform>
. Это не будет заменено, это просто гарантирует, что наш матч заканчивается в правильном месте.
Что вы пытаетесь? Покажите немного усилий - не просто заходите и попросите Stack Overflow сделать это за вас. – alroc