2010-03-12 8 views
19

PowerShell 세션이 종료 될 때 자동으로 정리 작업을 수행 할 방법을 찾고 있습니다. 그래서 예를 들어 프로필 파일에서 나는 꽤 많은 작업을 위해 백그라운드에서 실행해야하는 프로세스를 시작하고 콘솔을 닫으면 자동으로 프로세스를 닫고 싶습니다.Powershell 프로필 "종료시"이벤트?

프롬프트를 표시 할 때 prompt과 같이 세션을 닫을 때 PowerShell에서 자동으로 호출하는 일부 기능이 있습니까? 콘솔 창을 닫으면 이벤트가 시작되지 않습니다, 그러나

Register-EngineEvent PowerShell.Exiting –Action { ... } 

참고 :

답변

19

당신이 Exiting 이벤트에 이벤트 핸들러를 첨부하는 데 사용할 수있는 Register-EngineEvent cmdlet에 있습니다.

+1

고마워, 그 잘 작동하지만 대부분 exit를 명시 적으로 입력하지 않고 쉘을 닫습니다. 어쩌면 다른 누군가가 아이디어를 가지고있다. 그렇지 않으면 나는'exit'에 익숙해 져야한다;) – poke

+1

Btw. '-SupportEvent' 매개 변수를 추가하여 쉘이 시작될 때마다 PowerShell이 ​​이벤트 데이터를 출력하지 못하게해야합니다. - 아니면 Out-Null으로 파이프하십시오. – poke

+7

@poke : 프로필에서 다음 작은 스 니펫을 사용하고 있습니다 :'Invoke-Expression "function $ ([char] 4) {exit}"그러면 Ctrl + D와 Enter를 눌러 PowerShell을 종료 할 수 있습니다. 완벽하지는 않지만 X 버튼을 피하기에 충분히 짧습니다. – Joey

관련 문제