如果输出日志以所需的字符串结尾,我需要查找,如果是,则调用另一个批处理。
我已经在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
我会使用任何具体的功能吗?有人能指出我的错误并解释它为什么不起作用吗?
提前致谢 埃尔德
答案 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)
findstr
与findstr
命令中的字符串之间的空格是您的问题。
在指定的位置使用 Space ,errorlevel
将生成语法错误消息并将2
设置为findstr
。
删除它,{{1}}将尝试在文件中找到该字符串。