如何使用 Windows 资源管理器(或者可能是其他应用程序)进行“不等于”搜索,然后删除找到的文件?

如何使用 Windows 资源管理器(或者可能是其他应用程序)进行“不等于”搜索,然后删除找到的文件?

在 Linux/BSD 上,我可以运行

在此处找到我的路径 -not -iname“*txt”-type -f -delete

这将删除指定文件夹中所有非.txt文件。

我想在 Windows 上做类似的事情。最好不要使用 powershell。:)

谢谢

答案1

特工搜捕/FileLocator 精简版非常适合这个

FileLocator Lite 是 Agent Ransack 的品牌重塑,适用于企业环境。它具有完全相同的功能,但名称和徽标不同

个人使用可免费。

设置File name:NOT: *.txt

您可以选择搜索Containing text:

设置Look in:为你的路径

点击Start

Shift然后,您可以按照通常的方式(单击、 + 单击、 + 单击等)从结果中选择项目Ctrl并删除。

在此处输入图片描述

您还可以将其配置为对 Windows 资源管理器搜索做出反应F3Ctrl+f替换它:

Tools -> Shell Integration -> Replace default Explorer Search

答案2

PowerShell 的优势在于它是内置的(在现代 Windows 版本中),不需要额外的工具。如果您不使用排除查找,则常规的 Windows 资源管理器搜索可能也足够了。它确实支持一些修饰符来缩小搜索范围。

Get-ChildItem -File -Recurse | Where Name -notlike "*.txt" | Remove-Item

您可能还可以使用 Windows Subsystem for Linux (WSL) 来实际使用相同的命令,尽管您会发现它确实存在一些其他问题,并且可能无法完全正常工作。此外,对于如此简单的事情来说,这样做有点过头了。

答案3

如果您正在寻找从命令行执行此操作的方法,则 for 命令可能会有所帮助:

for /f "tokens=*" %a in ('dir /b /o') do @if not "%~xa" == ".txt" (@echo del: "%a") else (@echo keep: "%a")

例子:

上述代码的示例

答案4

在 Windows 资源管理器中使用减号来否定搜索词。

例如,搜索包含文本的文件重复数据删除并且只显示名称为不等于dontFindMe.txt你会使用:

durp -name:dontFindMe.txt

搜索完成后,您只需使用 Ctr+A 选择所有文件并删除它们

相关内容