Powershell使用哈希表和foreach循环通过appcmd设置appsettings

Powershell使用哈希表和foreach循环通过appcmd设置appsettings,powershell,Powershell,我试图通过添加几个应用程序设置来修改网站的web.config。为了使这段代码更具可重用性等等,我想使用哈希表来存储键值对,然后对它们进行循环。我在尝试将键和值注入到appcmd调用时出错。这是我的密码: $env:myWebsite = "myWebsite" $appcmd = "C:\windows\system32\inetsrv\appcmd.exe" $settings = @{ "test1"="C:\

我试图通过添加几个应用程序设置来修改网站的web.config。为了使这段代码更具可重用性等等,我想使用哈希表来存储键值对,然后对它们进行循环。我在尝试将键和值注入到appcmd调用时出错。这是我的密码:

$env:myWebsite = "myWebsite"
$appcmd = "C:\windows\system32\inetsrv\appcmd.exe"

$settings = @{
    "test1"="C:\Temp\test";
    "test2"="true";
    "test3"="C:\Temp\"
}

foreach($s in $settings.GetEnumerator()){
    & $appcmd --% set config "%myWebsite%" /section:appSettings /+"[key='$($s.Name)',value='$($s.Value)']"
}

当我尝试执行此操作时,它不会注入s.Name和s.Value

也许可以查看
WebAdministration
模块:Hey@MathiasR.Jessen,谢谢您的回复。问题不在于appcmd,如果我不尝试使用替换,这个方法效果很好。我敢肯定问题在于我糟糕的powershell技能。这很公平。如果要展开
$(…)
子表达式,则需要删除
-->%
修饰符tanks@MathiasR.Jessen,这解决了我的问题。@MathiasR.Jessen我可以问你为什么不回答这个问题吗?OP和其他人知道为什么删除--%会有帮助似乎是有益的。我只是好奇你和我在另一篇文章中的观点?