Чтобы использовать оператор замены регулярных выражений, вы можете сделать следующее, если $content
содержит целевую строку.
$content -Replace "51\d+",$port
Если $content
- это путь, вы можете запустить Get-Content
и затем применить-Replace
.
(Get-Content $content) -Replace "51\d+",$port
LotPings предоставил синтаксис для использования положительного взгляда за утверждением, что более безопасно для случаев, когда вы не хотите заменять все числа в строке/ файл, начинающийся с 51:
$content -Replace '(?<=add key="Port" value=")51\d+',$port
Проблема с .Replace()
заключается в том, что он не поддерживает регулярные выражения.Это метод из строкового класса, который заменяет буквальную строку.
Кроме того, кажется, что это является частью определения XML.Вам может быть лучше создать XML-объект и соответствующим образом обновить атрибуты.