2013-06-20 6 views
1

두 시스템 간의 인터페이스로 사용되는 C# 응용 프로그램을 PowerShell cmdlet으로 변환해야합니다. 첫 번째 시스템은 일부 매개 변수를 사용하여 응용 프로그램을 호출하고 성공의 경우 0, 특정 오류의 경우 1000 또는 1001과 같은 몇 가지 반환 코드 중 하나를받습니다. 현재 작성한 cmdlet은 반환 코드를 WriteObject()를 사용하여 파이프 라인으로 다시 전달합니다. 내 질문은 리턴 코드가 0이 아니고 오류가 발생하는 경우 espacially 수행하는 더 좋은 방법이 있다면 무엇입니까?C# cmdlet - 리턴 코드를 파이프 라인에 전달

미리 제안 해 주셔서 감사합니다.

+0

http://msdn.microsoft.com/en-us/library/windows/desktop/dd878251(v=vs.85).aspx , http://rkeithhill.wordpress.com/2009/08/03/effective-powershell-item-16-dealing-with-errors/ – dugas

답변

0

나는 "당신"이 무엇을 찾고 있는지 잘 모르겠습니다. 그것이 여기에 제안이라고 말했습니다.

오류가 발생하면 cmdlet을 오류 스트림에 기록하십시오. WriteObject 대신 WriteError를 사용합니다. powershell 스크립트는 try/catch에서 cmdlet을 실행하여 오류를 catch 할 수 있습니다. 앱에 맞는 오류 코드를 경고로 변환 할 수도 있습니다. WriteWarning을 사용하십시오. 마지막으로 스크립트를 종료하려면 ThrowTerminatingError가 있습니다. ThrowTerminatingError도 잡힐 수 있지만 그렇지 않으면 스크립트가 종료되지만 Write-Error가 잡히지 않으면 스크립트가 계속됩니다.

다음 cmdlet 및 오류보고에 MSDN에서 전체 섹션의 : http://msdn.microsoft.com/en-us/library/windows/desktop/dd878251(v=vs.85).aspx

관련 문제