2012-07-27 15 views
12

एक चर में एक फ़ाइल से पढ़ना एक्सएमएल इस तरह किया जा सकता है:शक्तियों में कास्टिंग? अजीब वाक्यविन्यास?

[xml]$x=get-content myxml.xml 

लेकिन क्यों नहीं:

$x=[xml]get-content myxml.xml 

कौन देता है:

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 

यही कारण है: क्यों है बराबर चिह्न के बाईं ओर किए गए कास्ट ऑपरेशन, आमतौर पर प्रोग्रामिंग भाषाओं में कास्टिंग जावा में दाएं हाथ की ओर (कहें) पर किया जाता है:

a=(String)myobject; 

उत्तर

21
$x=[xml](get-content myxml.xml) 
+0

धन्यवाद! किसी को पता है कि इन ब्रैकेट की आवश्यकता क्यों है? – monojohnny

+7

क्योंकि 'get-content myxml.xml' एक अभिव्यक्ति है; '(get-content myxml.xml)' एक ऑब्जेक्ट है। आपको इसे किसी अन्य चीज़ पर डालने के लिए शुरू करने के लिए एक ऑब्जेक्ट होना चाहिए! – SpellingD

+2

इसे थोड़ा जोड़ने के लिए, cmdlet के चारों ओर कोष्ठक अभिव्यक्ति को हल करने के लिए मजबूर करता है। फिर, हल अभिव्यक्ति, जो अब एक वस्तु है, कास्ट ऑपरेटर में पारित किया गया है। –

संबंधित मुद्दे