我想编写一个包含以下操作的批处理文件:
在每个批处理作业运行后每天生成的文件夹中的日志文件列表中,如下所示:
log_20170801_5.txt
log_20170801_4.txt
log_20170801_3.txt
log_20170801_2.txt
log_20170801_1.txt
搜索今天生成的最新日志文件(例如:log_20170801_5.txt)
在该日志文件中,搜索字符串“Error”
如果找到“错误”,请使用“错误”复制整行并发送包含该行的电子邮件
我有这样的事情:
set batch_name="HK Price Feed"
set today=%date:~10,4%%date:~4,2%%date:~7,2%
set today_day=%date:~7,2%
set today_year=%date:~10,4%
set today_month=%date:~4,2%
set email_list=abc@abc.com
set log_path=C:\path\Log\
set string ="Error"
FOR /F %%I IN ("log_path") Do
If findstr /i /r "%string%"
Echo Copy the Error Message row
blat.exe -server -f%email_list% -to %email_list% -s "Error is find on %batch_name%" -body "Error Message row"
) ELSE (
blat.exe -server -f%email_list% -to %email_list% -s "No Error is found in the Log file"
exit
)
)
有人可以帮我纠正脚本以使其有效吗? - 如何找到今天生成的最新文件? - 如何搜索字符串? - 如何将带有“Error”的行复制为变量?