0
Я борюсь с ниже код и это то, что я получаю:заменить строки с переменными с помощью PowerShell
"FirstName":"$value","LastName":"$value"......
Но, это то, что я хотел бы достичь:
"FirstName":"${strClientName}","LastName":"${strSurName}" .....
Так как могу ли я заставить powershell вернуть желаемое значение из HashTable вместо этого: $value
Проблема заключается в том, что $
в значениях hashtabl е. Если я удалю его из хеш-таблицы, он отобразится правильно, но значение $ должно отображаться на выходе.
Код:
$str = '"FirstName":"f_name","LastName":"l_name","AskCatalog":false,"Nuteres":12","ZipCode":"1234","City":"LA BOUVERIE","Street":"Rue Pasteur","StreetNr":"34","Phone":"12345678","Email":"[email protected]"'
$list = @{FirstName="${strName}";
LastName="${strSurName}";
ZipCode="${strZipCode}";
City="${strCity}";
Street="${strStreet}";
StreetNr="${strNumber}"}
foreach($item in $list.GetEnumerator())
{
$key = $item.Key
$value = $item.Value
$pattern = '("'+$key+'":)".*?"'
$changed = "`$1`"`$value`""
$result = $str = $str -replace $pattern, $changed
}
Write-Host $result
Я попытался удалить ('), но он возвращает пустую строку. Так оно и есть. Почему вы получили такой результат? Что вы изменили в коде? –
в основном эта строка: '$ changed =" '$ 1'" $ value' "" ' –
О, а также список $, обратите внимание, что он имеет одинарные кавычки вместо двухместных. В любом случае попробуйте с полным кодом. Вы должны увидеть те же результаты, что и я. –