2011-06-29 16 views
24

PowerShell hace que trabajar con XML sea bastante fácil en la mayoría de los casos. Sin embargo, tengo problemas para usar la notación "punto" para recorrer un archivo web.config. Todo funciona¿Cómo se puede usar PowerShell? (punto) notación para recorrer los elementos con puntos en el nombre del elemento?

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 

En la última línea, PowerShell utiliza IntelliSense para rellenar system.web, pero si intenta ejecutarlo, la salida es nula. Sé que puedo usar Xpath o los objetos Xml de .NET, pero prefiero no hacerlo si no es necesario.

Respuesta

45
$webAppXml.configuration.'system.web' 
5

Esto también funciona:

por ejemplo, ..

$ webAppXml.configuration [ "system.web"] Identidad

2

Como alternativa, se pueden utilizar variables:

$ subpropiedad = 'System.Web' $ webAppXml.configuration $ subpropiedad

.

Creo que esta es la técnica más útil, porque me permite cambiar las propiedades fácilmente.

Por cierto, puede usar el mismo truco para llegar a una definición de método, y no ejecutarla.

Espero que esto ayude

Cuestiones relacionadas