2017-04-26 64 views
0

我正在尝试向我的脚本添加错误处理,以便运行它的任何人在之后可以看到txt文件中的错误。 我知道我可以使用try,catch来捕获错误,但是我遇到的问题是,我有数百行脚本,一些Cmdlet没有变量来错误捕获,我如何捕获错误整个功能并导出到一个txt文件,以节省必须通过每一行添加-erroraction stop,并把它放在一个尝试块与catch块有一个out-file命令在其中发送到文件。PowerShell高级函数中的错误处理

感谢

+0

你的意思添加到-ErrorVariable的代码的每个线和使用+ errvar捕捉它? – Royston

回答

0

当我需要记录,我一直只是把这样的事情在catch块:

$ErrorName = $Error[0].exception.GetType().fullname 
$ErrorDescription = $Error[0].exception.Message 
"Something went wrong gathering the account names. Cannot continue processing, a fatal error has occurred... `r`n $ErrorName `r`n $ErrorDescription `r`n SCRIPT TERMINATED `r`n " | Out-file -filepath $ErrorLog -append 
+0

我有285行代码,我应该如何捕获所有这些? – Royston

+0

@Royston我拥有长达数千行的脚本,我在try-catch块中工作,只要有可能发生错误。另一个选择是$ Error变量捕获所有错误为数组格式,最新的总是[0]。我相信它会在覆盖之前捕获多达256个错误,但可以修改。理论上讲,你可以将错误变量输出到日志文件中,但我从来没有尝试过,想象它会变得混乱。 – Nick