我经常需要查找日志文件,问题是日志文件被埋在几十个文件夹中,而查找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千行。
在cmd窗口上的Git
如何打开新的cmd窗口并在其中执行for-loop?
如果你可以在机器上安装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] 举报,一经查实,本站将立刻删除。