使用 Log Parser 时如何将日期设置为参数

How to set date as a parameter when using Log Parser

使用Log Parser时,它实际上支持将参数传递给sql文件。在我的例子中,我想将输出文件名设置为包含今天的日期,格式为 yyyyMMdd。这是我的 sql 文件内容:

SELECT RecordNumber, TimeGenerated
  ,EventId,EventType,EventTypeName,EventCategory,EventCategoryName
  ,SourceName,REPLACE_STR(Strings,'\u000d\u000a','.') AS Strings
  ,ComputerName,SID,REPLACE_STR(Message,',','.') AS Message,Data 
INTO  C:\EventLog\Security_%date%.csv 
FROM Security
WHERE TimeGenerated > SYSTEM_DATE() 

然后我从 Windows power shell 调用日志解析器,例如:

.\LogParser.exe -o:CSV file:sqlfile.sql?date=.....

我可以在 "date=" 后面放什么,这样我就可以得到 yyyyMMdd 格式的当前日期?

LogParser 将自动使用您的 SELECT 语句中的值来替换 INTO 语句中的通配符 (*)。因此,请尝试将其添加为 SELECT 语句

中的第一个字段
TO_STRING(SYSTEM_DATE(), 'yyyyMMdd') AS [DateForFileName],

并将您的 INTO 语句更改为

INTO  C:\EventLog\Security_*.csv

并且您不再需要在 logparser.exe 命令中使用 ?date=.....。

/科林