如果让let遇到错误,我需要终止整个脚本执行。之后的整个脚本永远都不能执行。就我而言,如果我使用ThrowTerminateError,它将停止当前的Commandlet进一步执行,而其余脚本将执行我不希望的脚本。
我已经使用过“ PipelineStoppedException”,但这在错误流中什么都没有告诉,也没有异常可以被抓住。因为调用调用成功终止。
我该如何实现?我想用异常消息终止整个脚本执行。以下是我在Commandlet中使用的C#代码,但仍允许其余脚本继续继续执行。
修改
protected override void BeginProcessing()
{
base.BeginProcessing();
if (SomeLogicTrue())
{
var errorRecord = PowershellErrorHandler.GetErrorRecord(new PipelineStoppedException("access is not supported for this context."), "InvalidExecutionContext");
ThrowTerminatingError(errorRecord);
}
}
答案 0 :(得分:2)
在脚本开头将错误操作首选项设置为“停止”。
$ErrorActionPreference = "Stop"
现在,即使脚本抛出无终止错误,它也会立即停止。