Как обновить тег в файле с помощью PowerShell

У меня есть файл конфигурации (test.properties)

Файл включает:

<a>aa</a>
<b>bb</b>
<c>ccc</c>
<d>dddd</d>
<Test>Yes</Test>

Я хочу заменить значение «Нет» в файле test.properties с помощью PowerShell.

Existing : <Test>Nope<Test>

 AFter Update it should be 

        <Test>Yes<Test>

Как я могу заменить это значение с помощью PowerShell?

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
0
252
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Используйте замену! Код ниже прочитает содержимое файла и заменит ваш тестовый тег новым значением, а затем запишет содержимое обратно в тот же файл.

(Get-Content yourfile.xml).replace("<Test>Nope<Test>", "<Test>Yes<Test>") | Set-Content yourfile.xml

Спасибо за ваш ответ. Если я хочу установить значение «Да» с помощью параметра, как я могу его установить? Например, у меня есть параметр $ value = 'Yes', и я хочу установить как <Test> $ value <Test>

Ukchat 31.10.2018 08:10

Np! Затем вы можете использовать интерполяцию строк, попробуйте это так: '<Test> $ ($ value) <Test>'

Marcus Höglund 31.10.2018 08:12

У меня это не работает: (Комментарий: (Get-Content yourfile.xml) .replace ('<Test> Nope <Test>', '<Test> $ ($ value) <Test>') | Set-Content yourfile. xml, поэтому вывод: <Test> $ value <Test>

Ukchat 31.10.2018 08:13

@Ukchat значение $ ограничено. Попробуйте использовать $ custValue. Также используйте двойные кавычки "<test> $ ($ custValue) </test>"

Marcus Höglund 31.10.2018 08:20

Другой способ - использовать оператор -replace на основе RegEx в отличие от метода .replace(), который использовал Маркус Хёглунд.

-replace "(?<=<(Test)>).*?(?=</\1)",$custValue

Он не заботится о тексте, который он заменяет, используя непотребляющий оглядки, определяя текст до и после (\ 1 повторяет сгруппированный (Test) в просмотре вперед).

(get-Content .\test.properties) -replace "(?<=<(Test)>).*?(?=</\1)",$custValue|
set-Content .\test.properties

Кстати, разве закрывающему тегу не предшествует /?

Другие вопросы по теме