当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] PowerShell:如何跳过无法访问的文件

作者:精品下载站 日期:2024-12-14 04:24:54 浏览:13 分类:玩电脑

PowerShell:如何跳过无法访问的文件


有时,在 PowerShell 中,您可能会收到一条错误消息,告诉您无法访问特定文件,因为该文件当前正被另一个进程使用。

抑制此错误的最简单方法是使用 -ErrorAction SilentlyContinue,它告诉 PowerShell 以静默方式继续任务而不显示错误。

以下是在实践中使用此语法的一种常见方法:

Remove-Item "C:\my\path\*" -Recurse -Force -ErrorAction SilentlyContinue

此特定示例删除我们指定的路径中的所有文件。如果当前正在使用任何文件,则 PowerShell 将直接跳过这些文件,而不显示错误消息。

以下示例展示了如何在实践中使用此语法。

示例:如何跳过 PowerShell 中无法访问的文件

假设我们当前目录有以下路径:

C:\Users\bobbi\data1

我们可以使用 Get-ChildItem cmdlet 来查看此目录中的所有文件和文件夹:

[玩转系统] PowerShell:如何跳过无法访问的文件

我们可以看到该目录下有三个文件:

  • regions.txt
  • 名册.csv
  • 时间表.csv

假设我们要删除此目录中的所有文件,但假设文件 schedules.csv 当前已在我们的计算机上打开并正在使用。

假设我们尝试使用 Remove-Item cmdlet 和以下语法来删除目录中的每个文件:

Remove-Item "C:\Users\bobbi\data1\*" -Recurse -Force

以下屏幕截图显示了如何在实践中使用此语法:

[玩转系统] PowerShell:如何跳过无法访问的文件

我们收到一条错误消息,告诉我们 schedules.csv 无法访问,因为它正在被另一个进程使用。

为了在删除当前目录下的所有文件时跳过这个文件,我们可以添加命令-ErrorAction SilentlyContinue,如下:

Remove-Item "C:\Users\bobbi\data1\*" -Recurse -Force -ErrorAction SilentlyContinue

以下屏幕截图显示了如何在实践中使用此语法:

[玩转系统] PowerShell:如何跳过无法访问的文件

请注意,当我们再次运行 Get-ChildItem cmdlet 时,我们可以看到除 schedules.csv 之外的所有文件都已被删除,并且这次我们没有收到任何错误消息。

注意:您可以在此处找到 PowerShell 中 -ErrorAction 的完整文档。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯