我正在文件的每一行上使用Invoke-Expression。如果其中一行导致错误,我想停止执行。我尝试使用-ErrorAction Stop停止,但没有效果。
以下内容应该是什么?
gc -Path "fileWithErrorOnSomeLine.txt" | % {Invoke-Expression "$_" -ErrorAction Stop }
如果表达式调用产生错误,如何立即退出循环?
注意:以下更改不会停止遍历文件内容
gc -Path "fileWithErrorOnSomeLine.txt" | % {Invoke-Expression "$_" -ErrorAction Stop } -ErrorAction Stop
答案 0 :(得分:0)
使用try-catch
"tester" > testing.txt
"test2" >> .\testing.txt
"get-childitem" >> .\testing.txt
gc .\testing.txt | % {
try { invoke-expression "$_" -ErrorAction Stop
}
catch {
write-warning "error : $_ "
break
}
}
有关如何终止循环的更多信息: Terminating a script in PowerShell