禁止显示 PowerShell New-Object 创建的输出

Suppress output created by PowerShell New-Object

提问人:Sherzad 提问时间:4/3/2019 更新时间:4/3/2019 访问量:2769

问:

禁止显示 PowerShell 输出消息:是否创建了新的 Outlook 应用程序对象?

$outlook = New-Object -ComObject outlook.application
$outlookItem = $outlook.CreateItem("olMailItem")

我已经尝试过使用这些方法。他们没有工作:

 $outlook = New-Object -ComObject outlook.application > $Null
 $outlook = New-Object -ComObject outlook.application |Out-Null
 ($outlook = New-Object -ComObject outlook.application) |Out-Null

这些是我不希望它们在屏幕上显示的输出消息:

Application      : Microsoft.Office.Interop.Outlook.ApplicationClass
Class            : 5
...
...
PowerShell 抑制消息 新对象

评论

4赞 boxdog 4/3/2019
当我运行时,我没有看到任何输出。将按预期创建对象并分配给该对象。$outlook = New-Object -ComObject outlook.application$outlook

答:

0赞 Sherzad 4/3/2019 #1

@boxdog,感谢您指出这一点。 在许多断点之后,我注意到输出是由 Attachments.Add() 方法生成的。它使用>$null解决。

$outlookItem.Attachments.Add("fileName.txt") > $null

评论

1赞 JosefZ 4/6/2019
Powershell-guru 在他们的最佳实践 #12 中:建议分配给 $null[void] 转换以获得更好的性能