使用批处理查找文件中的字符串并调用其他批处理

时间:2017-11-16 14:05:19

标签: batch-file

如果输出日志以所需的字符串结尾,我需要查找,如果是,则调用另一个批处理。

我已经在StackOverflow上尝试了一些解决方案,但它仍无法正常工作。

title Validate daily execution


findstr /C: "Exiting with code 0" .\logs\20171116.log
if %errorlevel%==0 (
BBBB
CALL  AutoLogEmail
) else (
AAAAAAAa

)

我在子文件夹中查找的文件名称为

  

16-11-2017 6:50:00,75 START PROCESS XXXXXXX.ISPAC Microsoft(R)SQL   Server Execute Package Utility版本11.0.2100.60用于64位   版权所有(C)Microsoft Corporation。保留所有权利。

     

开始时间:06:50:00 DTExec:程序包执行返回   DTSER_SUCCESS(0)。开始时间:06:50:00已完成:06:52:03经过:   122.929秒16-11-2017 6:52:04,00 END PROCESS XXXXXXXX.ISPAC:退出代码0

我会使用任何具体的功能吗?有人能指出我的错误并解释它为什么不起作用吗?

提前致谢 埃尔德

2 个答案:

答案 0 :(得分:0)

您可以尝试这样的事情:

@echo off
title Validate daily execution

>nul find "Exiting with code 0" .\logs\20171116.log && (
    CALL  AutoLogEmail
) || (
    echo not found
    pause
)

在这种情况下,它取决于find命令,它会导致&&运算符(如果前一个命令没有失败,它只执行命令之后)调用autologmail,如果没有找到任何内容,则回未找到。

答案 1 :(得分:0)

findstrfindstr命令中的字符串之间的空格是您的问题。

在指定的位置使用 Space errorlevel将生成语法错误消息并将2设置为findstr

删除它,{{1}}将尝试在文件中找到该字符串。