PowerShell在大多数情况下都非常容易使用XML。但是,我在使用“点”表示法来浏览web.config文件时遇到了麻烦。一切正常
Import-Module WebAdministration
$site = get-website | ? { $_.name -eq "My Website - 80" }
$WebConfigFile = $site.physicalPath + "\web.config"
[xml]$WebAppXml = Get-Content $WebConfigFile
$webAppXml.configuration.system.web
在最后一行,PowerShell使用intellisense填充system.web,但如果您尝试运行它,则输出为null。我知道我可以使用Xpath或.NET Xml对象,但如果我不需要,我宁愿不这样做。
答案 0 :(得分:48)
$webAppXml.configuration.'system.web'
答案 1 :(得分:5)
这也有效:
e.g。
$webAppXml.configuration.["system.web"].Identity
答案 2 :(得分:2)
或者,您可以使用变量:
$subproperty = 'System.Web'
$webAppXml.configuration.$subproperty
我发现这是最有用的技术,因为它可以让我轻松切换属性。
顺便说一句,你可以使用相同的技巧来获取方法定义,而不是运行它。希望这有助于