Filesystems 试图在logparser中使用子选择来检索文件夹信息

Filesystems 试图在logparser中使用子选择来检索文件夹信息,filesystems,directory,subdirectory,logparser,Filesystems,Directory,Subdirectory,Logparser,我的最终目标是使用类似于下面的表中的日志解析器返回数据 PATH QTY SIZE(KB) C:\Path\dir 1200 150223 我收到以下错误:错误:语法错误::预期来自关键字,而不是令牌“*” 如果我将代码稍微更改为以下内容,我会得到另一个奇怪的错误 C:\scripts>logparser -i:fs "SELECT * FROM (SELECT path FROM C:\DOWNLOADS\*.* WHERE ATTRIBUT

我的最终目标是使用类似于下面的表中的日志解析器返回数据

PATH QTY SIZE(KB) C:\Path\dir 1200 150223 我收到以下错误:错误:语法错误::预期来自关键字,而不是令牌“*”

如果我将代码稍微更改为以下内容,我会得到另一个奇怪的错误

C:\scripts>logparser -i:fs "SELECT * FROM (SELECT path FROM C:\DOWNLOADS\*.* WHERE ATTRIBUTES LIKE 'D%')"
我收到的错误是:无法打开:搜索文件夹C:\scripts中的文件时出错从C:\DOWNLOADS中选择路径:文件名、目录名或卷标语法不正确

我想返回c:\downloads路径下不同子目录的大小。我会调整通配符以进一步缩小结果范围

编辑-更多信息 我希望从类似以下结构返回数据:

TopFolder |_SubFolder | |_SubSubFolder1 | |_SubSubFolder2 | |_SubSubFolder3 |_OtherFolder 返回如下表或某种形式的数据:

_FolderName___Qty____AvgSize____MaxSize____MinSize SubSubFolder1 250 334533 45000 445 SubSubFolder2 123 4443 2233 344 ....
首先,LogParser不支持嵌套的SELECT。也就是说,不清楚为什么需要一个子选择。例如,如果希望将目录搜索的深度限制为2,则可以使用“-recurse:2”。另一方面,如果要汇总目录下的所有文件,则需要选择SUMSize和GROUP BY,并使用EXTRACT_前缀指定级别;例如:

SELECT EXTRACT_PREFIX(Path, 2, '\\') AS MyFolder, SUM(Size)
FROM C:\Downloads\*.*
GROUP BY MyFolder

根据@Gabriele提供的信息,我提出了以下符合我需要的logparser查询

logparser从c:\downloads*中选择EXTRACT_PREFIXPath,2,“\”作为FolderName,计数为ItemCount,DIVsumsize,1024作为KBSize。其中属性与“D%”不同,按FolderName分组,ItemCount>1-i:fs


我的最终目标是收集由自动化流程填充的网络文件夹的统计数据,以跟踪进度。c:\downloads源将更改为另一个源。

谢谢您的回复@Gabriele。我接受了您的建议,并从以下位置提出了logparser选择EXTRACT\u PREFIXPath,2,“\\”作为FolderName,Count作为ItemCount,DIVsumsize,1024作为KBSize:\downloads*。group by FolderName的ItemCount>1-i:fs我注意到,对于返回的每个文件夹,计数都会增加3。包含5个文件的文件夹,返回的计数为8。如果有一个包含文件的子文件夹,它将是另外一个3。对单独计算文件有什么建议吗?您正在计算“.”、“..”和目录本身。您可以根据属性进行筛选并排除目录。
SELECT EXTRACT_PREFIX(Path, 2, '\\') AS MyFolder, SUM(Size)
FROM C:\Downloads\*.*
GROUP BY MyFolder