我正在运行一个命令
hg st
然后检查它的$LASTEXITCODE
以检查mercurial在当前目录中的可用性。我不关心它的输出,也不想把它展示给我的用户。
如何抑制所有输出,成功还是错误?
因为mercurial不是PowerShell命令,所以hg st | Out-Null
不能工作。
发布于 2013-05-25 06:52:38
对于非PowerShell命令,Out-Null
运行得很好。但是,它不会抑制STDERR
上的输出,只会抑制STDOUT
上的输出。如果您还想禁止STDERR
上输出,那么在将输出通过管道传输到Out-Null
之前,必须将文件描述符重定向到STDOUT
hg st 2>&1 | Out-Null
2>
重定向来自STDERR
的所有输出(文件描述符#2)。&1
将重定向的输出与STDOUT
的输出(文件描述符#1)合并。然后将组合输出打印到STDOUT
,管道可以将其提供给管道中的下一个命令的STDIN
(在本例中为Out-Null
)。有关详细信息,请参阅Get-Help about_Redirection
。
发布于 2018-05-25 21:35:14
您可以做的一件有趣的事情是通过管道将输出设置为Write -Verbose,然后如果需要的话,您仍然可以通过-Verbose开关运行脚本来查看它。
ping -n 2 $APP 2>&1 | Write-Verbose
发布于 2014-06-21 00:36:45
https://stackoverflow.com/questions/16744451
复制相似问题