如何在文件夹中搜索最新文件并搜索文件中的字符串?

时间:2017-08-01 11:02:53

标签: batch-file

我想编写一个包含以下操作的批处理文件:

  1. 在每个批处理作业运行后每天生成的文件夹中的日志文件列表中,如下所示:

    log_20170801_5.txt

    log_20170801_4.txt

    log_20170801_3.txt

    log_20170801_2.txt

    log_20170801_1.txt

  2. 搜索今天生成的最新日志文件(例如:log_20170801_5.txt)

  3. 在该日志文件中,搜索字符串“Error”

  4. 如果找到“错误”,请使用“错误”复制整行并发送包含该行的电子邮件

  5. 如果找不到“错误”,请发送另一封电子邮件
  6. 我有这样的事情:

    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”的行复制为变量?

0 个答案:

没有答案