我必须从包含超过 200 万个文件(所有可能的格式并嵌套在多层子文件夹中)的 USB HDD 中提取某些文件(仅少数扩展名)。
有人可以推荐我一个好的实用程序来完成这个极其耗时的任务吗?
理想情况:我设置了参数(我真正需要的实际扩展名),然后运行该工具,第二天早上,我发现我的 USB 硬盘上只有几个文件夹(名称类似于“doc & docx”、“xls & xlsx”、“pdf”、“zip”等)包含我的文件……没有其他内容,没有空文件夹,也没有其他文件,除了这些具有我指示的扩展名的文件。最终的文件名冲突将通过附加的渐进数字(或自定义文本)解决……错误日志记录可能是一个优点(因为我在第二个硬盘上有完全相同的副本,我最终可以从中“拔出”一些意外删除的文件/文件夹)。我将在稍后处理重复项,但如果这个“神奇工具”可以可靠地做到这一点,我显然不会介意 ;)
感谢任何有创意的建议
答案1
感谢您的建议,但我决定使用批处理脚本来解决这个问题...我把它组合起来,它正好满足了我的需要。批处理文件的命令竟然如此强大/有用,这再次让我感到惊讶!
一个简单的记事本创建的脚本现在可以完成这项工作,无需下载/安装任何东西,也不需要涉及 Windows 资源管理器,后者显然无法处理包含太多文件的文件夹。
有时最简单的解决方案确实是最好的!
_________________________________________ 编辑:
正如我在预编辑部分所说的那样,该脚本非常简单,而且由于这是一个高度定制的操作(这并不是脚本的问题,而是我使用的程序让我在很短的时间内得到了我想要的东西),我怀疑其他用户会发现它“按原样”可操作,但希望其他人会发现我所做的很有用,可以快速移动(仅)几千个需要的文件,这些文件来自多年来积累在外部硬盘上的大量文件,我写了一份备忘录来指出大方向,那么无论谁偶然发现这个问答,都必须根据他/她的需要调整我的方法。
因为我需要从 HDD 中提取的数据非常敏感(并且对我来说很有价值),所以我有意遵循每个步骤,并为每组扩展创建单独的脚本(我还故意没有使用 @echo off 来查看正在移动的内容)...显然,相同的过程也可以(半)无人值守运行。
干得好:
1)确保要从中收集文件的外部 HDD 分区已分配字母“Y”(对于这个特定的脚本,使用了该字母,但显然可以使用任何其他可用的字母)。
2)在“Y”中将所有文件夹(要从中收集文件)放入名为“-All”的单个文件夹中(对于此特定脚本...可以使用任何其他名称)。
3) 使用出色的免费软件 Suction(谷歌搜索“suction dr nathan”即可找到)并 Suction “- All”文件夹,将所有文件移至第一级,同时重命名所有同名文件。(注意:我故意没有使用可用的“删除重复项”选项,以便更快地完成操作)
4)执行“在根目录(Y 驱动器)中创建文件夹.bat”以创建所有必要的文件夹来托管(按扩展名排序的)文件......类似于(根据需要自定义):
mkdir "Y:\ALL Archive files"
mkdir "Y:\All Excel files"
mkdir "Y:\All PowerPoint files"
mkdir "Y:\All Word files"
5)根据需要逐个执行其他批处理脚本*以将必要的文件移动到指定的目的地...类似这样的操作(根据需要定制):
move /-y "Y:\- All\*.zip" "Y:\ALL Archive files"
move /-y "Y:\- All\*.rar" "Y:\ALL Archive files"
move /-y "Y:\- All\*.xls" "Y:\All Excel files"
move /-y "Y:\- All\*.xlsx" "Y:\All Excel files"
move /-y "Y:\- All\*.pps" "Y:\All PowerPoint files"
move /-y "Y:\- All\*.ppsx" "Y:\All PowerPoint files"
move /-y "Y:\- All\*.ppt" "Y:\All PowerPoint files"
move /-y "Y:\- All\*.pptx" "Y:\All PowerPoint files"
move /-y "Y:\- All\*.doc" "Y:\All Word files"
move /-y "Y:\- All\*.docx" "Y:\All Word files"
move /-y "Y:\- All\*.rtf" "Y:\All Word files"
6)使用你最喜欢的搜索工具(我使用了 Everything)检查“- All”文件夹中是否遗留了具有指定扩展名的任何文件(不知道为什么确实遗留了 2 或 3 个文件……令人费解!无论如何,我手动移动了它们)
7)运行你最喜欢的重复查找器来删除可能的重复项
8)删除可能“卡在中间”的任何不必要的文件(我发现了一堆我不需要保留的文件,所以我在这个阶段将它们丢弃)
9)重命名/合并“Y”根目录中的托管文件夹(如果适用)
10)一旦安全,删除“- 全部”文件夹(我再三检查剩下的内容确实需要删除)
*(如果需要,为其他扩展编译新脚本以及“Y”根目录中必要的托管文件夹)