尝试/捕获错误处理

时间:2015-11-02 17:10:51

标签: powershell powershell-v2.0 powershell-v3.0

我尝试创建一个脚本来删除%temp%中的所有文件。它工作,但现在我需要摆脱错误。以下是我的内容,但我仍然遇到错误。有什么想法吗?

try
   {
      Get-Childitem $Env:temp | Remove-Item -Recurse -Force
   }
Catch
   {
   }

1 个答案:

答案 0 :(得分:1)

临时文件中的大量文件可能正在使用或以其他方式无法访问,因为这是流程留出数据的临时空间。

最常见的cmdlet支持-ErrorAction,因此您无需更改默认值,并且可能会错过重要错误。在您的情况下,您可以使用...

Get-Childitem $Env:temp | Remove-Item -Recurse -Force -ErrorAction SilentlyContinue 

由于您没有生成Try所针对的终止错误,因此您可以完全删除该块。

FWIW如果你确实需要try / catch,请确保使用终止错误

try{
    Get-ChildItem $Env:temp | Remove-Item -Recurse -Force -ErrorAction Stop
} Catch{
    # Handle Stuff
    Write-Host "Removal not 100% successful"
}