微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

最好的方法来扫描50万个文件夹/文件和输出path与.txt?

我经常需要查找日志文件,问题是日志文件被埋在几十个文件夹中,而查找50个文件需要花费一个小时或更长的时间。

我一直在使用一个batch file在一夜之间扫描驱动器,并以下列格式编译所有目录的列表

Z:folderfolder2folder3folder4folder5folder6folder7 <about another 20 folders > log.txt

当前命令是:

dir /b /-d /-p /s /A:-D > directories.txt

这个txt文件有50万行。

在Windows shell脚本(cmd.exe)中,如何将程序的标准输出分配给环境variables?

从Windows命令提示符通过Java进入目录

批量程序来检查过程是否存在

完成命令行后closures程序

使用batch file从不同的时区获取本地时间

然后,当我需要查找一组日志时,我将运行另一批次以基于扫描该txt文件提取一组50个日志。

目前的解决scheme的问题是随着日志数据库的增长,现在需要12个小时以上的时间来扫描目录。 这使得它在一夜之间无法运行。 而且我需要每天晚上运行以保持日志最新。

题:

所以,问你们,做这件事的最好方法是什么? 我不能改变任何目录结构(这是一个数百人使用的日志数据库),我真的不知道除了批处理脚本以外的任何语言。 但它似乎是批量是有限的,不允许我做任何以下(这将解决我的问题)

跳过过去48小时内未修改的目录

跳过名称中具有特定关键字的文件夹的子目录

如果我可以批量执行上述2,则可能需要从50万行输出的txt文件大概为3千行。

从可执行文件中设置一个variables

在cmd窗口上的Git

如何安全地将文件名附加到Windows文件夹path参数?

如何打开新的cmd窗口并在其中执行for-loop?

使用Windows批处理从文件删除尾随空格?

如果你可以在机器上安装Cygwin,那么你就可以使用bash以及在Unix / Linux / BSD中使用的标准的grep / find / etc.工具,并且可以在Windows下在Cygwin shell下运行。 那么你可以使用各种解决方案,如:

grep在日期范围内创建的所有文件

否则,你可能将不得不投资学习Powershell。

>"output.txt" robocopy z: "%temp%" /l /s /nc /ns /njh /njs /ndl /fp /maxage:2 /xd folder7 otherFolder

Robocopy(从Windows vista或更高版本,但在W2003资源工具包工具中可用)可用于获取具有指定条件的文件的递归列表:在过去两天内修改并从进程中排除某些文件夹。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐