使用 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=.....。
/科林
使用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=.....。
/科林