2012-02-16 13 views
3

powershell에서 트랩 할 수 없거나 수정하지 않을 경우가 있습니다.트랩 제거 항목 excpetion

log "Processing $($_.Name).old" $logFile 
if (Test-Path "$($_.Name).old") 
{ 
    & { 
     rm "$($_.Name).old" 
    } 
    trap #[System.UnauthorizedAccessException] 
    { 
     log "Move to trash" $logFile 
     moveTrach "$($_.Name).old" 
     continue 
    } 
} 

난 아무것도 잡을 확인하기 위해 트랩 표현 유형을 언급했다 :

그래서 여기 일을 수행하는 코드이다. 하지만 불행히도 절대로 절대로 들어 가지 않습니다.

예외 로그는 볼 수 있지만 "휴지통으로 이동"로그는 볼 수 없습니다.

2012-02-16 10:35:31 Processing file.dll 
Remove-Item : Cannot remove item file.dll.old: Access to the path 'file.dll.old' is  denied. 
At upgradegw.ps1:189 char:29 
+       rm <<<< "$($_.Name).old" 
+ CategoryInfo   : PermissionDenied: (file.dll.old:FileInfo) [Remove-Item], UnauthorizedAccessException 
+ FullyQualifiedErrorId : RemoveFileSystemItemUnAuthorizedAccess,Microsoft.PowerShell.Commands.RemoveItemCommand 
2012-02-16 10:35:31 Processing file2.dll 

감사가

답변

2

트랩은 종료 오류에 트리거하는 데 도움을 위해.

rm "$($_.Name).old" -ErrorAction "Stop"