当我从函数返回XML对象时,PowerShell将其类型更改为<div class="container">
This div contains two buttons. The event handler is on the div, not the buttons.
<div>
<button type="button">One</button>
<button type="button">Two</button>
</div>
</div>
:
我在这里读到:
PowerShell changes return object's type
Preserving PowerShell function return type
https://www.experts-exchange.com/questions/27035513/How-to-stop-PowerShell-function-changing-return-type-of-ArrayList-or-string.html
如何防止它并且所有人都写道,在返回中添加逗号Object[]
应该解决它。
我试过了:
,
问题仍然存在
它仍然返回return ,$computer
类型而不是Object[]
类型。
示例代码:
XmlElement
答案 0 :(得分:0)
问题是函数输出consists of everything that isn't captured并且始终是.NET对象。
Function main(){
[xml]$doc = New-Object System.Xml.XmlDocument
$computer = getComputerXML $doc
[void]$computers.AppendChild($computer)
}
你可以像这样检查with / out [void]
的区别:
$computers| foreach {$_.GetType().Fullname}
return关键字允许您退出任何特定的功能 点,...但我们不需要像我们一样使用return关键字 在C风格的功能。您也可以“选择”指定参数 返回语句将导致参数只输出 回来之前。 “return $ xy”不表示函数 只有输出是$ xy变量的内容。 ......
当您编写PowerShell函数以确保时,您必须勤奋 你只得到你想要的输出。这通常意味着重定向 不需要的输出到$ null(或者可选地输入表达式 将不需要的输出发送到[void])。