在Powershell中抑制命令的输出

3

我正在运行下面这个 cmdlet,我需要在脚本中使用它。

Connect-Pfa2Array -Endpoint 10.10.10.10 -Username pureapiuser -Password $psw -IgnoreCertificateError

我得到了下面的输出,我正在尝试去除它。我只需要cmdlet建立连接。 有没有办法做到这一点?我检查了cmdlet,没有看到静默连接的选项。
ArrayName    ApiVersion
---------    ----------
10.100.24.50 2.2 

4
请尝试使用 | Out-Null 或者 > $null。这些命令可以将输出结果丢弃,不会影响程序的执行,但是可以减少屏幕上的垃圾信息。 - Santiago Squarzon
1个回答

5

正如Santiago Squarzon提到的,你可以使用几个选项:

[void](Connect-Pfa2Array ... )


Connect-Pfa2Array | Out-Null

或者
Connect-Pfa2Array > $null

或者

$null = Connect-Pfa2Array

2
做得很好,尽管这些方法并非都是平等的;总体而言,$null = ... 是最好的通用解决方案,而为了性能原因应避免使用 | Out-Null - 参见这个答案中一个相关问题的解释。 - mklement0
@mklement0,我喜欢你提到不使用管道替代方案以提高效率,对于为什么新手在PS中(包括我自己)会着迷于在任何可以使用管道替代方案的地方使用它们,当有更经典和有效的方法来完成事情时,这很难理解 :P - Santiago Squarzon
1
@SantiagoSquarzon,这是可以理解的,因为管道是一个非常优雅的“概念”,如果它没有性能惩罚就太好了,但它总是会有(至少目前实现的方式如此;可以想象,PowerShell可以将纯表达式的管道在幕后转换为更高效的结构);相反,管道使得内存使用高效,流式解决方案成为可能(除非最终结果仍然完全在内存中收集)。 - mklement0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接