首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么写错误终止脚本?

为什么写错误终止脚本?
EN

Stack Overflow用户
提问于 2020-01-14 11:08:28
回答 2查看 406关注 0票数 1

我在网络上读到的所有内容都告诉我,写错误写入错误流,但是没有终止脚本,但是当运行下面的脚本时,它显然会终止脚本。

代码语言:javascript
复制
Write-Error "This should not terminate the script..."
Write-Information "... and it hasn't"

产出如下:

代码语言:javascript
复制
D:\MyBitsAndBobs\writeerrortest.ps1 : This should not terminate the script...
At D:\MyBitsAndBobs\writeerrortest.ps1:3 char:1
+ Write-Error "This should not terminate the script..."
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Write-Error], WriteErrorException
    + FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException,writeerrortest.ps1

信息".它没有“显然从未被执行过。有人能对这种明显的意外行为有所了解吗?

EN

回答 2

Stack Overflow用户

发布于 2020-01-14 11:26:54

这与书面资料默认的工作方式有关。

根据文件:

$InformationPreference首选项变量值确定您提供的写入信息消息是否显示在脚本操作的预期点。由于此变量的默认值为SilentlyContinue,因此默认情况下不显示信息性消息。如果不想更改$InformationPreference的值,可以通过将InformationAction公共参数添加到命令中来重写其值。

因此,在您的情况下,要么将Write-Information更改为Write-Host,要么使用:

代码语言:javascript
复制
Write-Error "This should not terminate the script..."
Write-Information "... and it hasn't" -InformationAction Continue

输出:

写错误“这不应该终止脚本.”写信息“.而且它还没有”-InformationAction继续:这不应该终止脚本.+ CategoryInfo : NotSpecified:(:)写错误,WriteErrorException + FullyQualifiedErrorId :NotSpecified.而且它还没有

票数 1
EN

Stack Overflow用户

发布于 2020-01-14 11:31:48

看看您的$ErrorActionPreference变量。默认情况下,它被设置为继续,实际上不会终止脚本。在你的情况下,它可能会停止。将其更改为$ErrorActionPreference = [System.Management.Automation.ActionPreference]::Continue并再次运行脚本。有更多的设置比这两个,探索他们。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59732577

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档