删除文件夹中除特定扩展文件之外的所有文件/文件夹

删除文件夹中除特定扩展文件之外的所有文件/文件夹

使用 Win7,我有一个文件夹包含不同的子文件夹和文件,我不想删除所有扩展名为。CS

答案1

当您要求删除批处理中的所有非 *.cs 文件时,PowerShell 可能简单得多:

Get-ChildItem -Recurse -File | Where {($_.Extension -ne ".cs")} | Remove-Item 

这样做的目的是:

  • 以递归方式获取当前文件夹内的所有子项(文件和文件夹),并将搜索限制在文件内。
  • 将结果限制为文件扩展名为 -ne(不等于)“.cs”的文件
  • 删除所有返回的结果

使用时要小心 - 如果您的工作目录是 C:\,您将(尝试)擦除磁盘上的每个非 .cs 文件。

要测试这将删除什么,请将“-WhatIf”开关添加到您的语法中以执行不会实际删除文件的测试运行:

Get-ChildItem -Recurse -File | Where {($_.Extension -ne ".cs")} | Remove-Item -whatif

(参见下文使用 .txt 扩展名) 在此处输入图片描述

答案2

您可以使用免费版 DiskBoss 搜索除扩展名为“CS”的文件之外的所有文件,然后删除搜索结果。您可以使用多种不同类型的正向和负向文件匹配规则来精确指定要匹配的文件。您可以保存用户定义的命令,然后根据需要多次执行此类命令。此外,还有一个命令行实用程序,可用于从批处理文件和 shell 脚本执行此类命令,但免费版不提供命令行实用程序。有关所有可用文件匹配规则的详细信息,请参阅以下页面:DiskBoss文件搜索

相关内容