假设您有一个返回某些内容的方法或cmdlet,但您不想使用它而您不想输出它.我找到了这两种方式:
Add-Item > $null
[void]Add-Item
Add-Item | Out-Null
Run Code Online (Sandbox Code Playgroud)
你用什么?哪种更好/更清洁?为什么?
我正在运行一个命令
hg st
Run Code Online (Sandbox Code Playgroud)
然后检查它$LASTEXITCODE以检查当前目录中mercurial的可用性.我不关心它的输出,也不想向我的用户显示它.
如何抑制所有输出,成功或错误?
由于mercurial不是PowerShell命令行开关hg st | Out-Null不起作用.
在自动执行某些SVN任务的PowerShell脚本中,我具有以下功能:
function SvnUrlExists($url)
{
svn info $url | out-null 2>&1
return $?
}
Run Code Online (Sandbox Code Playgroud)
由于这显式测试是否存在某个SVN存储库URL,因此我对任何错误输出都不感兴趣.但是,尽管我发现stderr在PowerShell 2>&1中重定向的所有内容都建议将其重定向到stdout,但仍会输出错误消息:
svn: warning: W170000: URL 'blahblah' non-existent in revision 26762 svn: E200009: Could not display info for all targets because some targets don't exist
不幸的是,这严重扰乱了我脚本的输出.
我做错了什么,如何抑制此错误输出?