-
[PowerShell] $ErrorActionPreference 설정으로 ps1 스크립트 오류 발생 시 다음 코드 실행 막기Shell & CMD/PowerShell 2022. 12. 20. 22:38반응형
파워셸 스크립트는 기본적으로 오류가 나도 왠만하면(?) 다음 코드 줄을 실행하게 된다. 아래 코드는 에러를 유발하는 코드와 다음 단계에서 "Work is done." 메시지를 출력하는 스크립트 예제이다.
$err = 1 / 0 Write-Host "Work is done."
실행하면 runtimeerror가 발생하게 되는데, 문제는 다음 코드인
Write-Host "Work is done."
도 같이 실행된다는 점이다.Work is done.이 같이 실행되고 말았다 스크립트 동작에서 반드시 정상 선행되어야 하는 코드인 경우 이와 같은 동작은 문제가 발생할 수 있다.
이 경우
$ErrorActionPreference = "Stop"
값을 추가하면 된다.$ErrorActionPreference = "Stop" $err = 1 / 0 Write-Host "Work is done."
에러만 나오는 모습 $ErrorActionPreference
는 추가 한 줄 이후 부터 적용된다. 아래 코드는 에러 이후Work 1 is done.
메시지가 표시 되지만, 이후 다시 반복되는 에러코드에선 에러만 표기하고,Work 2 is done.
은 표기하지 않는다.$err = 1 / 0 Write-Host "Work 1 is done." # 실행된다. $ErrorActionPreference = "Stop" $err = 1 / 0 Write-Host "Work 2 is done." # 실행되지 않는다.
$ErrorActionPreference
옵션에 대한 보다 자세한 사항은 출처에서 확인 할 수 있다.반응형'Shell & CMD > PowerShell' 카테고리의 다른 글