Суть такова: нужно заменить все вхождения вида @some_text на значение из словаря
Есть такой скрипт:
[string]$str = "-Password '@Password' -Branches '@BranchList'"
[System.Collections.Specialized.OrderedDictionary]$ValuesForParameters = @{}
$ValuesForParameters.Add("BranchList", "Replaced BranchList")
$ValuesForParameters.Add("Password", "Replaced Password")
$regularExpression = "(?<='@)(.*?)(?=')"
[string]$result = $str -replace $regularExpression, $ValuesForParameters['$1']
$ValuesForParameters.Keys
Write-Host $result
Но результат выводит:
-Password '@' -Branches '@'
Как я понимаю, он не воспринимает '$1' как переменную, а воспринимает ее как строку, если я добавлю в словарь значение с ключом '$1', то он заменит все на значение соответствующее этому ключу.
Не могли бы вы подсказать как это можно реализовать?