如何以format-list方式将对象打印到控制台,还将对象作为对象返回?

时间:2016-05-06 16:08:41

标签: powershell cmdlets

我有一个返回自定义对象的cmdlet。

我仍然希望返回对象,但是在运行脚本时,我还希望将这些对象输出到控制台并使用格式列表 - 就像write-host写入控制台一样,但其输出不会被变量赋值使用。

因此,例如我希望能够在控制台中使用它:

$ArrayOfObjects = $ArrayOfIPsOrWhatever | MyCoolCmdlet.ps1

这是用户在运行该命令时在控制台中看到的内容

name: myobj1
prop1: sdfsdfsdf
prop2: sldkjfss

name: myobj2
prop1: swerwew
prop2: kopkpjojpoj

但他们也可以使用对象数组(比如$ ArrayOfObject [1..2])

1 个答案:

答案 0 :(得分:2)

你可能不应该像这样强制调用者的输出;至少使用Write-Verbose

但是这样做的方法是只使用Write-HostWrite-Verbose将cmdlet中的对象写回输出流。

要使用格式化的输出,您可以做到这个有点复杂的事情:

$myObjects | Format-List | Out-String | Write-Verbose

你应该展示你的代码并解释它是如何做你想做的。