programing

항목이 없는 경우 오류 없이 존재하는지 확인

telebox 2023. 8. 5. 10:05
반응형

항목이 없는 경우 오류 없이 존재하는지 확인

PowerShell을 사용하여 IIS 웹 응용 프로그램(또는 다른 종류의 항목)이 있는지 확인하려고 합니다.나는 이것을 할 수 있습니다.Get-Item그러나 항목이 존재하지 않으면 오류가 보고되며, 이는 스크립트를 실행하는 사용자에게 오해를 유발합니다. 실제로 모든 것이 정상일 때 무언가 잘못된 것처럼 보입니다.

오류 없이 어떻게 해야 하나요?

cmdletTest-Path이를 위해 특별히 설계되었으며 경로의 항목이 있는지 여부를 결정합니다.부울 값을 반환하고 오류를 생성하지 않습니다.

cmdletGet-Item(및 유사)도 사용할 수 있지만 직접 사용할 수는 없습니다.한 가지 방법이 이미 제안되었습니다. 사용-ErrorAction SilentlyContinue실제로 오류가 여전히 발생하지만 표시되지 않는다는 것을 아는 것이 중요할 수 있습니다.오류 수집 확인$Error명령 뒤에 오류가 있습니다.


참고로

이 오류를 방지하는 재미있는 방법이 있습니다(이는 다음과 같은 다른 cmdlet과도 작동합니다).Get-Process를 가지고 있지 않은 경우Test-Path대안)."MyApp.exe" 항목(또는 "MyProcess" 프로세스)의 존재를 확인하려고 한다고 가정합니다.그런 다음 이러한 명령은 누락된 대상에 대해 아무것도 반환하지 않으며 동시에 오류도 생성하지 않습니다.

Get-Item "[M]yApp.exe"
Get-Process "[M]yProcess"

이러한 cmdlet은 와일드카드 대상에 대한 오류를 생성하지 않습니다.그리고 우리는 이 재미있는 와일드카드를 사용합니다. 실제로는 단일 항목과 일치합니다.

명령 사용...get-item blah -ErrorAction SilentlyContinue

alt text

언급URL : https://stackoverflow.com/questions/4362275/check-if-an-item-exists-without-an-error-if-it-doesnt-exist

반응형