【发布时间】:2011-09-19 22:29:01
【问题描述】:
通常可以使用 $ErrorActionPreference 来停止执行错误的 PS 脚本,如下例所示,它使用了无效的颠覆命令。脚本在第一个命令后退出。
$ErrorActionPreference='Stop'
svn foo
svn foo
使用 maven 命令 (mvn.bat) 尝试相同的操作会执行这两个命令。
$ErrorActionPreference='Stop'
mvn foo
mvn foo
最初我怀疑 mvn.bat 没有设置错误代码,而 PS 只是没有看到错误。然而,$?当 PS 在第一个错误后退出时,设置正确,如下所示:
mvn foo
if (-not $?) {exit 1}
mvn foo
所以这是我的问题:鉴于 svn.exe 和 mvn.bat 都在失败时设置了错误代码,为什么 PS 脚本在 mvn 错误后没有停止。我发现全局设置“$ErrorActionPreference=Stop”而不是在每个命令后执行“if (-not $?) {exit 1}”以在错误时终止要方便得多。
【问题讨论】:
标签: powershell maven