Batch file 在批处理文件中运行日志解析器时遇到-i:EVT开关问题

Batch file 在批处理文件中运行日志解析器时遇到-i:EVT开关问题,batch-file,cmd,logparser,Batch File,Cmd,Logparser,尝试使用logparser执行批处理文件时出现意外错误 我知道冒号在批处理文件中用作标签,双冒号用于注释。但当冒号:出现在如下开关中时会发生什么: for /f "tokens=1,2 delims=," %a in (servers.txt) do "C:\Program Files\Log Parser 2.2"\logparser -i:EVT "SELECT TimeGenerated,EventID,EventType,SourceName,ComputerName,Message F

尝试使用logparser执行批处理文件时出现意外错误

我知道冒号在批处理文件中用作标签,双冒号用于注释。但当冒号:出现在如下开关中时会发生什么:

for /f "tokens=1,2 delims=," %a in (servers.txt) do "C:\Program Files\Log Parser 2.2"\logparser -i:EVT "SELECT TimeGenerated,EventID,EventType,SourceName,ComputerName,Message FROM \\%a\%b WHERE TimeGenerated > TO_TIMESTAMP(SUB(TO_INT(SYSTEM_TIMESTAMP()),118800))AND EventID BETWEEN x AND y ORDER BY TimeGenerated DESC" -stats:OFF 
如果我直接运行logparser命令,它可以正常运行。但在批处理文件中运行会给出:

“EVT此时出乎意料。”如何让cmd解释“-I:EVT”在批处理文件之外使用

我怎么逃走


我试过-I^:EVT和-I^^:EVT,两者都不起作用

您需要为变量%字符复制
。当您尝试从脚本运行该变量时,请尝试以下操作:

for /f "tokens=1,2 delims=," %%a in (servers.txt) do "C:\Program Files\Log Parser 2.2"\logparser -i:EVT "SELECT TimeGenerated,EventID,EventType,SourceName,ComputerName,Message FROM \\%%a\%%b WHERE TimeGenerated > TO_TIMESTAMP(SUB(TO_INT(SYSTEM_TIMESTAMP()),118800))AND EventID BETWEEN x AND y ORDER BY TimeGenerated DESC" -stats:OFF
如果您的原始代码在CMD中运行良好,那么修改将在脚本中运行,无论如何,我将建议您,在这部分
“C:\Program Files\Log Parser 2.2”\logparser
中,您的目录路径是错误的,同时也要避免在“代码< >代码< > />代码>:<代码> DO(代码)> /代码>

时,您将要考虑的解释错误。