尝试捕获块中的Powershell remove-item失败,但未引发异常

时间:2020-11-10 20:47:35

标签: powershell error-handling

我有一个powershell脚本,它在try catch块中带有remove-item -recurse语句,该语句在路径中的文件上失败,但不会引发异常。

        try{
            remove-item $jobfolder -Recurse
            log-entry "SUCCESS: Removed job folder $jobfolder"
            return $true
        }
        catch{
            log-entry "FAILED: Failed to delete job folder $jobfolder $_"
            return $false
        }

执行此操作时,我收到文件权限错误

remove-item:无法删除项\ srv1 \ archive \ 12556 \ thumbs.db:您没有足够的访问权限来执行此操作。 在C:\ powershellScripts \ ssl-jobarchives.ps1:121 char:9

  •     remove-item $jobfolder -Recurse
    
  •     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    
    • CategoryInfo:PermissionDenied:(Thumbs.db:FileInfo)[Remove-Item],IOException
    • FullyQualifiedErrorId:RemoveFileSystemItemUnAuthorizedAccess,Microsoft.PowerShell.Commands.RemoveItemCommand remove-item:无法删除目录\ srv1 \ archive \ 12556,因为它不是空的。 在C:\ powershellScripts \ ssl-jobarchives.ps1:121 char:9
  •     remove-item $jobfolder -Recurse
    
  •     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    
    • CategoryInfo:WriteError:(\ srv1 \ archive \ 12556:DirectoryInfo)[Remove-Item],IOException
    • FullyQualifiedErrorId:DirectoryNotEmpty,Microsoft.PowerShell.Commands.RemoveItemCommand

但是没有捕获到异常,并且我的日志文件中没有错误,该函数也不会像我希望的那样返回false。

0 个答案:

没有答案