12
lectura XML de un archivo en una variable se puede hacer así:¿Casting en powershell? ¿Sintaxis extraña?
[xml]$x=get-content myxml.xml
Pero por qué no:
$x=[xml]get-content myxml.xml
Lo que da:
Unexpected token 'get-content' in expression or statement.
At line:1 char:20
+ $x=[xml]get-content <<<< myxml.xml
+ CategoryInfo : ParserError: (get-content:String) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : UnexpectedToken
Eso es: ¿Por qué el operación de lanzamiento realizada en el lado izquierdo del signo igual, típicamente en los lenguajes de programación el lanzamiento se realiza en el lado derecho como (por ejemplo) en java:
a=(String)myobject;
¡Gracias! ¿Alguien sabe por qué se necesitan estos corchetes? – monojohnny
Porque 'get-content myxml.xml' es una expresión; '(get-content myxml.xml)' es un objeto. ¡Necesitas tener un objeto para comenzar a lanzarlo a otra cosa! – SpellingD
Para aumentar un poco esto, los paréntesis alrededor del cmdlet fuerzan a la expresión a resolverse. Luego, la expresión resuelta, que ahora es un objeto, se pasa al operador de transmisión. –