首页 > 解决方案 > 查找 PowerShell 错误最初是终止还是非终止

问题描述

假设我用 ErrorAction Stop 运行了一个命令,它产生了一个错误。我想知道错误是否最初终止?我有 ErrorVariable 或 $Error 对象。ErrorVariable 是否捕获这两种错误?我正在寻找 .NET/PowerShell 对象中的一个属性,它可以告诉我这个错误正在终止。是否也会为非终止错误生成异常?

另外,当我在控制台上编写命令(不是 ISE 并且不运行脚本,只是控制台上的单个命令)时,如何使用 ErrorAction 变量抑制错误?基本上,屏幕上不应该有任何红色输出。

标签: powershellpowershell-v5.1

解决方案


about_Try_Catch_Finallyabout_Trap提供一些有用的信息。

默认情况下,非终止错误不会被 try catch 捕获,但它们会显示在$error. 您可以使用-ErrorVariable定义另一个错误变量 ( about_CommongParameter。因此您可以使用自定义变量来检查非终止错误,这可能会使您的代码更易于阅读。

通过使用SilentlyContinue输出被抑制,但错误仍然记录在错误变量中。


推荐阅读