2016-05-04 2 views
0

Я пытаюсь заменить текст из пар значений ключа словаря. Вот сценарий PowerShell я работаю,Заменить текст из пар значений ключа

foreach ($string in $templatestrings) { 


       if($Dictionary.ContainsKey($string)) 
       { 
        $Dictionary.Keys | % { $templatecontent = $templatecontent -replace "{{$string}}", ($Dictionary[$_]) } 
       } 

    } 
$templatecontent | set-content $destinationfilename 

} 

В основном Если текст значение совпадает с ключом словаря, то мы заменим текст со значением словаря. Кажется, что замещающая часть работает не так, как ожидалось. Я хочу заменить значение текста на значение словаря. I'm storing the text values in $templatecontent variable. Может кто-нибудь, пожалуйста, скажите мне правильный способ заменить эти текстовые значения.

+0

Как этот новый, тогда вы последний вопрос (ы), используя этот код, где вы также запрашиваете замену текста? – Matt

+0

@Matt Фактически в предыдущем вопросе я сопоставлял каждую строку с ключом и заменял значение. Теперь я обновил условие 'if' следующим образом: ' $ Dictionary.ContainsKey ($ string) '.. Можете ли вы сказать мне правильный способ заменить значения. Спасибо. – mahesh

ответ

0

Вы уже проверить, содержит ли словарь ключ, так что вы можете получить доступ к значению для замены с помощью индекса оператора []:

foreach ($string in $templatestrings) 
{ 
    if($Dictionary.ContainsKey($string)) 
    { 
     $templatecontent = $templatecontent -replace "{{$string}}", ($Dictionary[$string]) 
    } 
} 

Однако, вы можете упростить это много, как я показал в моей последней ответ:

$templatecontent = Get-Content $sourcefilename 
$Dictionary.Keys | % { $templatecontent = $templatecontent -replace "{{$_}}", ($Dictionary[$_]) } 
templatecontent | set-content $destinationfilename 

Эти три линии заменит все {{key}} с value fromt он словарю. Вам даже не нужен regex для захвата $templatestrings.

+0

Да. Это работает нормально. Я ценю это jisaak. Большое вам спасибо за решение. – mahesh

 Смежные вопросы

  • Нет связанных вопросов^_^