本文的脚本演示如何让PowerShell给调用者回传一个数字值,作为状态码: $ […]
异常处理
一个有声的进度条,脚本本来运行正常,但是当你终止了它,比如使用ctrl+C来终止,此时脚本运行立马结束。最后一行的$player.Stop()来不及执行,提示声音仍旧在余音绕梁,三日不绝。
使用Finally 来做特殊的清理工作
支持所有版本。 当你使用 Get-ChildItem查询文件系统,你可能经过没有 […]
Powershell记录拒绝访问
支持所有Powershell版本。 当你脚本中存在内置EXE控制台命令,这些命令 […]
Powershell使用%ERRORLEVEL%
支持所有版本。 当你运行控制台EXE命令,如robocopy.exe, ipco […]
Powershell捕获内置EXE异常
支持所有版本 当你使用GC查询文件时,当你没有足够的权限你可能会错过不少错误。你 […]
Powershell用变量累积记录错误
如果自己写函数动态地去执行一些脚本块或者脚本文件,那么捕获到异常时行号和列号信息 […]
PowerShell异常发生的行号和列号
像Get-FanBingbing这样的异常,是因为命令不存在,确切来讲属于语法错误,级别比较高被trap到了。但是像目录找不到这样的异常,相对而言级别比较低,默认不能捕获到,除非显示指定ErrorAction为stop。
捕获PowerShell脚本内部的异常

前几天CodeCook分享了两篇文章《隐藏PowerShell终止错误 》和《捕获PowerShell非终止的错误 》,我当时看完了以后心里还是有点犯嘀咕,什么是终止错误?,什么是非终止错误?为什么Invoke-WebRequest中的ErrorAction没用?
再谈PowerShell终止与非终止错误
在先前的技巧中你能观察到使用了 "-ErrorAction Stop"结合“异常捕获命令”能捕获一个Powershell命令的错误,可是使用了这种方式操作之后,脚本会在第一个错误发生后停止。
记录所有错误
非终止错误来自命令自身。许多发生在命令内部的错误就不是终止错误。
捕获PowerShell非终止的错误

有时,你会注意到当使用了如:“ -ErrorAction SilentlyContinue "仍会抛出错误。