我有一个返回自定义对象的cmdlet。
我仍然希望返回对象,但是在运行脚本时,我还希望将这些对象输出到控制台并使用格式列表 - 就像write-host写入控制台一样,但其输出不会被变量赋值使用。
因此,例如我希望能够在控制台中使用它:
$ArrayOfObjects = $ArrayOfIPsOrWhatever | MyCoolCmdlet.ps1
name: myobj1
prop1: sdfsdfsdf
prop2: sldkjfss
name: myobj2
prop1: swerwew
prop2: kopkpjojpoj
但他们也可以使用对象数组(比如$ ArrayOfObject [1..2])
答案 0 :(得分:2)
你可能不应该像这样强制调用者的输出;至少使用Write-Verbose
。
但是这样做的方法是只使用Write-Host
或Write-Verbose
,和将cmdlet中的对象写回输出流。
要使用格式化的输出,您可以做到这个有点复杂的事情:
$myObjects | Format-List | Out-String | Write-Verbose
你应该展示你的代码并解释它是如何做你想做的。