我有批处理脚本,它执行命令并获取* .log文件中的输出。
现在我需要搜索严重性值,该值可以是以下任何一种,即
Caution
Critical
Repaired
如果在日志文件中找到了上述值,那么需要在单独的输出文件中以下面的格式从该严重性部分的下一行开始下一步。
日志文件内容:
number=1
severity=Informational
date=12/01/2012
time=07:56
description=Maintenance note: sys log cleared through tool
number=4
severity=Critical
date=05/13/2013
time=18:03
description=Network Adapter Link Down (Slot 0, Port 1)
在final_outputfile中:
severity date time Description
Critical 05/13/2016 18:03 Network Adapter Link Down (Slot 0, Port 0)
Repaired 06/21/2016 05:39 Network Adapter Link Down (Slot 0, Port 0)
到目前为止,我只能创建单独的final_output文件,但获取一些初始日志文件名作为内容。
我甚至只需要获取那些日期文件行,该日期文件行的日期早于当前日期的一个月/ 2个月。那将是下一个挑战。
答案 0 :(得分:0)
我想,这是输入文件中的空格。如果没有,请相应调整代码。
@echo off
setlocal
>out.log echo severity date time Description
REM above there are a tabs (two of them between date and time)
set "wanted=Caution Critical Repaired"
(
for /f "tokens=1,2 delims==" %%a in ('type in.log^|findstr "severity= date= time= description="') do (
if "%%a"==" severity" echo\
REM this is four SPACES above before severity
<nul set /p "=%%b "
REM above there is a SPACE and a TAB after %%b
)
echo/
) >>out.log
type out.log |findstr /b "severity %wanted%"