try/catch 错误处理

try/catch error handling

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

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

temp 中的许多文件可能正在使用或无法访问可移动文件,因为这是进程留下数据的暂存区 space。

最常见的 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"
}