我正在运行一个命令
hg st
然后检查它$LASTEXITCODE
以检查当前目录中 mercurial 的可用性。我不关心它的输出,也不想向我的用户展示它。
如何抑制所有输出、成功或错误?
由于 mercurial 不是 PowerShell 命令行开关hg st | Out-Null
不起作用。
我正在运行一个命令
hg st
然后检查它$LASTEXITCODE
以检查当前目录中 mercurial 的可用性。我不关心它的输出,也不想向我的用户展示它。
如何抑制所有输出、成功或错误?
由于 mercurial 不是 PowerShell 命令行开关hg st | Out-Null
不起作用。
Out-Null
适用于非 PowerShell 命令。但是,它不会抑制 on 的输出STDERR
,只会抑制 on 的输出STDOUT
。如果您还想抑制输出,STDERR
则必须将该文件描述符重定向到,STDOUT
然后再将输出管道传输到Out-Null
:
hg st 2>&1 | Out-Null
2>
重定向来自STDERR
(文件描述符#2)的所有输出。&1
将重定向的输出与STDOUT
(文件描述符#1)的输出合并。然后将组合输出打印到STDOUT
管道可以将其输入管道中STDIN
下一个命令的位置(在本例中Out-Null
)。请参阅Get-Help about_Redirection
以获取更多信息。
您可以做的一件有趣的事情是将输出通过管道传输到 Write-Verbose,然后如果需要,您仍然可以通过使用 -Verbose 开关运行脚本来查看它。
ping -n 2 $APP 2>&1 | Write-Verbose