$xml = [xml] '<node>foo</node>'
function foo2 { return "foo2" }
# all of these fail with the message:
# **Cannot set "foo" because only strings can be used as values to set XmlNode properties.**
$xml.node = foo2
$xml.node = foo2 -as [string] # because of this issue[1]
$xml.node = (foo2)
# these work
$xml.node = (foo2).tostring()
$xml.node = (foo2) -as [string]
$xml.node = [string] (foo2)
# yet, these two statements return the same value
(foo2).gettype()
(foo2).tostring().gettype()
1:PowerShell functions return behaviorPowershellの "return"キーワードがタイプエラーを引き起こすのはなぜですか?
私にとっては少なくとも動作します。ここでエラーメッセージは表示されず、VistaのPowershell 1.0でもWindows 7 RCのPowershell 2.0でも表示されません。 – Joey
私のためにも動作します。 XPのPowershell 1&2 – zdan
私はこの回避策に入れたスクリプトを見つけ、エラーの原因を突き止める機会を得ました。それは「リターン」ステートメントです。 –