我正在尝试替换字典的键值对中的文本。这是我正在研究的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 :(得分: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
。您甚至不需要regex
来捕获$templatestrings
。