2015-03-25 68 views
-1

我必须修改批处理文件来读取日志文件,每日日志文件会被追加。我必须修改批处理文件来读取日志文件,每天都会追加日期

我的要求是我必须读取当前日期的日志并在日志详细信息中找到一些字符串。示例日志文件如下。

c:\\> date /t 
Tue 03/23/2015 

Batch Summary 
------------------------ 
Total records = 11 
Total records with error = 0 
Batch filter ended 

c:\\> date /t 
Tue 03/24/2015 

Batch Summary 
------------------------ 
Total records = 11 
Total records with error = 0 
Batch filter ended " 
+0

欢迎计算器。请阅读http://stackoverflow.com/help/how-to-ask – jac 2015-03-25 00:27:35

+0

你想找什么字符串?一旦找到他们想做什么? – 2015-03-25 05:55:58

+0

我必须从当前日期找到“总记录错误消息= 0”和“批次过滤器结束”,然后将当前日期的日志结果打印到“.txt”文件中,并通过电子邮件发送结果 – 2015-03-25 15:51:41

回答

0

你能详细说明你想要做什么吗?

如果您正在尝试获取时间戳,则可以执行echo Timestamp[%date%, %time%] >> log.txt。由于您使用的是>>而不是>,因此您会在日志文件中获取每次请求的时间戳,而不是每次执行时都会覆盖它。

样品输出将是Timestamp[2015-03-24, 20:37:31.86]

+0

我只需要读取当前日期的日志,并且必须从当前日期日志块中找到“带有错误信息= 0的总记录数”和“批量过滤器结束信息”,然后打印结果(%batchloghome%\%reqfilenamelist%)do( 颜色a FOR/F“eol =,tokens = 1 delims =,”%% i当前日期的日志记录到“.txt”文件中并通过电子邮件发送结果 – 2015-03-25 16:10:52

0
@ECHO OFF 
REM is there an entry for today?: 
find "%date%" sample.log >nul 
if %errorlevel% neq 0 goto :notfound 

for /f "delims=" %%i in ('find "Total records with error" sample.log') do set tr=%%i 
for /f "delims=" %%i in ('find "Batch filter ended" sample.log') do set bf=%%i 

echo %tr% 
echo %bf% 
goto :eof 
:notfound 
echo sorry, no data for today. 
+0

- @现在呼应日志文件筛选 - @回声%%我 - @集LOGFILENAME = %%我 - @呼应检查变量 - @回波扫描的String..processing - @ echo%batchloghome% color b type“%batchloghome%\ %% i”|找到“Total Errors = 0” IF ERRORLEVEL 1 call:NotOkay1 type“%batchloghome%\ %% i”|找到“批量过滤结束” IF ERRORLEVEL 1呼叫:NotOkay2 IF NOT ERRORLEVEL 1个呼叫:好 ) “带误差记录总数= 0” 批次过滤目前使用从查找那些串截止 – 2015-03-26 15:15:22

+0

上述代码即时通讯没有附加日志文件的日志文件只有一天的日志详细信息现在附加,我只能读取当前日期的日志。 – 2015-03-26 15:17:53

+0

这就是我的代码所做的事情:检查是否有今天的条目,如果是,请阅读最后的值(必须是今天的那些值,因为它强烈按照时间顺序排列,'for'命令中的'set'会覆盖每个事件,所以最后,它保持最后一个值。 – Stephan 2015-03-26 15:39:13

相关问题