删除所有不符合特定模式的文件 - Windows 命令行

删除所有不符合特定模式的文件 - Windows 命令行

通过命令行删除项目非常容易。

del /options filename.extension

现在,假设我想删除文件夹中所有不以 .jpg 结尾的文件,我该怎么做。

问题是,我有一个软件可以将所有指定的图像转换为 .jpg,但它会保留原始图像,而我不再需要它们了。

与针对每种不同的文件类型执行多个语句相比,执行单个语句要高效得多。

答案1

我会这样做:

attrib +r *.jpg
del /q *
attrib -r *.jpg

这将首先使所有 JPG 文件变为只读,删除其他所有内容(它将自动跳过只读文件),然后使 JPG 文件再次可写入。

答案2

这实际上非常简单。

您需要for遍历文件,然后简单地查找扩展名:

for %f in (*) do if not %~xf==.jpg del "%f"

应该可以解决问题(代码这里)。

答案3

Powershell 来救场了
在 Windows 7/8 时代,它是传统命令行的继承者

Del C:\myFolder\* -exclude '*.jpg'

DelRemove-Item。它有几个选项,如递归、包含、排除和过滤(用于 RegEx)

您必须添加\*包含给定文件夹中的文件

答案4

我正在寻找一种方法来查找 Windows 7(NTFS 卷)上的目录树中所有不具有扩展名“ .mp3”的文件,该目录树包含数百个不同深度的目录中的大约 20,000 个文件...因此,经过一番焦虑之后,我使用了:

cd <theplace>
dir /S | find /V "<DIR>" | find /V "Total" | find /V "bytes" | find /V "Directory" | find /V "Volume" | find /V ".mp3" | more /S

在删除与 DIR 命令输出相关的所有内容后,此方法列出了与 .mp3 不匹配的文件......99%有效......除非不匹配的文件被命名为标准 DIR 输出中的关键字之一 - 也许有一种方法可以使 DIR 报告中的标题/摘要信息更少 - 但我没有理会,因为这已经达到了大部分目的。

相关内容