Powershell如何阻止在脚本中显示错误?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (541)

当我的PowerShell脚本尝试为不存在的服务器(在我的情况下为“bla”)创建SQL Server对象时,PowerShell会以红色显示大量的PowerShell错误。

由于我的脚本检查$?这些调用后的值,并显示并记录错误,所以我宁愿不显示几行PowerShell错误。

怎样才能停用正在显示的脚本?

提问于
用户回答回答于

你有几个选择。最简单的方法就是使用这些ErrorAction设置。

-Erroraction是所有cmdlet的通用参数。如果有特殊命令需要忽略,可以使用-erroraction 'silentlycontinue'这些命令,基本上忽略该命令生成的所有错误消息。也可以使用该Ignore值(在PowerShell 3+中):

与SilentlyContinue不同,Ignore不会将错误消息添加到$ Error自动变量。

如果想忽略脚本中的所有错误,则可以使用系统变量$ErrorAction并执行相同的操作:$ErrorActionPreference= 'silentlycontinue'

用户回答回答于

Windows PowerShell提供了两种报告错误的机制:一种终止错误的机制和另一种非终止错误的机制。

当发生ThrowTerminatingError错误时,内部CmdLets代码可以调用方法,该错误不会或不应允许cmdlet继续处理其输入对象。脚本编写者可以使用异常来捕获这些错误。

EX:

try
{
  Your database code
}
catch
{
  Error reporting/logging
}

当cmdlet可以继续处理输入对象时,内部CmdLets代码可以调用方法来报告非终止错误。然后脚本编写者可以使用-ErrorAction选项来隐藏这些消息,或者使用$ErrorActionPreference来设置整个脚本。

扫码关注云+社区

领取腾讯云代金券