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

[玩转系统] PowerShell:如何删除不在列表中的所有文件

作者:精品下载站 日期:2024-12-14 04:44:52 浏览:15 分类:玩电脑

PowerShell:如何删除不在列表中的所有文件


您可以在 PowerShell 中使用以下语法来删除目录中不属于特定列表的所有文件:

$keep = Get-Content keep.txt

gci ./data1 | Where-Object { $keep -notcontains $_.name } | Remove-Item

此特定示例将删除名为 data1 的目录中不属于 keep.txt 文件中指定的文件名列表的所有文件。

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

示例:如何删除不在 PowerShell 列表中的所有文件

假设我们要删除名为 data1 的目录中不属于名为 keep.txt 的文件中包含的文件名列表的所有文件。

我们可以使用 Get-Content cmdlet 首先查看 keep.txt 文件中的每个文件名:

[玩转系统] PowerShell:如何删除不在列表中的所有文件

我们可以看到keep.txt文件中保存了三个文件名:

  • 团队.csv
  • 教练.csv
  • managers.csv

接下来,我们可以使用 gciGet-ChildItem 的别名)cmdlet 来查看名为 data1 的目录中的所有文件:

[玩转系统] PowerShell:如何删除不在列表中的所有文件

我们可以看到该目录下总共有六个文件。

假设我们要删除此目录中不属于 keep.txt 文件中指定的文件名列表的所有文件。

我们可以使用以下语法来执行此操作:

$keep = Get-Content keep.txt

gci ./data1 | Where-Object { $keep -notcontains $_.name } | Remove-Item

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

[玩转系统] PowerShell:如何删除不在列表中的所有文件

请注意,当我们再次运行 gci 命令时,我们可以看到 data1 文件夹中不属于 keep 中指定的文件名列表的所有文件.txt 文件已被删除。

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

取消回复欢迎 发表评论:

关灯