我有以下声明。
$CINPUT = $CINPUT.ToUpper() -replace '(^\s+|\s+$)','' -replace '\s+',' ' 2> $NULL
2> $NULL
看起来根本没有将错误重路由为NULL,因为我仍然在接收异常。
无法验证变量,因为该值不是CINPUT变量的有效值。
我想忽略这个异常,但我不知道在这种情况下如何使用-ErrorAction Stop
注意:我知道它,它的工作,但我不想使用-erroractionpreference
作为我的脚本的全局设置。
1条答案
按热度按时间fykwrbwg1#
2> $NULL
只能隐藏写入 *PowerShell错误数据流 * 的错误。相反,您的语句会导致 *.NET异常 *,该异常在PowerShell中表现为 * 语句终止错误 *,您可以使用
try
/catch
处理该异常:通常,错误流的重定向-
2>
-仅在命令仅产生 * 非终止 * 错误时才会成功。调用 * 外部程序 * 时,
2>
会重定向其 stderr 输出。