我正在运行一个命令
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