1
OLE 개체를 만들 때 프로그램 끝에서이를 해제해야합니다. 그렇지 않으면 프로세스가 백그라운드에서 계속 실행됩니다. Powershell에서 atexit과 같은 유닉스를 얻는 방법?
나는 다음과 같은 예를 썼다 :$excel = New-Object -ComObject Excel.Application
# some long running code here
finally
{
"running finally"
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($excel)
}
내가 Ctrl 키으로 스크립트 중지
- finally 블록이 실행되지 않고 중간에 "장기 실행 코드"동안 C을. 내가 할 때마다 프로세스 테이블에서 또 다른EXCEL.EXE
프로세스를 얻습니다.
어떻게 안정적으로 사용자가 Ctrl 키으로 스크립트를 중단하는 경우에도 COM 개체를 해제 할 수 있습니다 - C를?
가 첫 번째 비트는 적어도 '차단 try'에인가? – arco444
@ arco444 그것이 맞거나 다르면 별다른 차이가 없습니다. – ceving
[이 링크] (https://social.technet.microsoft.com/Forums/windowsserver/en-US/fb409048-a607-4895-8ab3-08c2ec656c7a/trapping-ctrlc-in-powershell-v2? forum = winserverpowershell) - 두 번째 대답은 시나리오에 맞을 수있는 것처럼 보입니다. – arco444