-
[PowerShell] 자동변수(Automatic Variable) - 4. $Error, $Event, $EventArgs, $EventSubscriber, $SenderShell & CMD/PowerShell 2023. 11. 4. 18:56반응형
$Error
세션실행 후 오류발생시 내역이 저장되는 변수. 명령어에 오류가 발생하면 해당 $Error 배열형 변수에 누적된다. 콘솔에서 아래와 같은 순서로 오류를 유발한 뒤 $Error를 조회하면 실행실패한 오류내역이 모두 출력된다.
1/0 $arr = 1,2,3 $arr[3] = 4
$Event
실행 중인 이벤트 정보를 가지고 있는 변수. 이벤트를 통해 등록한 스크립트 블록 내에서 유효하다.
$EventArgs
실행 중인 이벤트 정보 중 이벤트 인수를 의미한다. 이벤트를 통해 등록한 스크립트 블록 내에서 유효하다.
$EventSubscriber
실행 중인 이벤트 정보 중 이벤트 구독자를 의미한다. 이벤트를 통해 등록한 스크립트 블록 내에서 유효하다.
$Sender
이벤트를 실행한 객체 정보를 의미한다. 이벤트를 통해 등록한 스크립트 블록 내에서 유효하다.
이벤트 관련 자동변수값을 아래 예제 코드를 통해 확인해보자. ps1 파일을 새로 생성한 후, 아래 코드를 입력한다. 2초당 이벤트 자동변수 $Event, $EventArgs, $EventSubscriber, $Sender 에 대한 내용을 각 파일에 기록 한 후 Beep 음을 출력하는 이벤트이다.
$action = { Out-File 'sender' -InputObject $Sender Out-File 'eventargs' -InputObject $EventArgs Out-File 'event' -InputObject $Event Out-File 'eventsub' -InputObject $EventSubscriber [Console]::Beep(300, 100) } #Start Event $timer = New-Object System.Timers.Timer $timer.Interval = 2 * 1000 $timer.Enabled = $true Register-ObjectEvent $timer "Elapsed" -SourceIdentifier "Timer.Elapsed" -Action $action # 해제 방법 # Unregister-Event -SourceIdentifier Timer.Elapsed
실행하면 일정한 비프음이 반복됨과 동시에 4개의 파일 sender, eventargs, event, eventsub 가 생성된 것을 확인할 수 있다.
참조
반응형'Shell & CMD > PowerShell' 카테고리의 다른 글