batch - 检查变量是否为空并执行操作

时间:2013-11-21 11:03:07

标签: windows shell batch-file cmd

我有以下批次代码:

set checkerr=
for /f "delims=" %%a in ('findstr "Error" %LOG%') do @set checkerr=%%a


echo %checkerr%


if "%checkerr%" NEQ [] GOTO sendmail

但它不起作用,我希望它只在日志文件中找到文本字符串“Error”时才发送邮件

注意:日志文件中的错误可能如下所示:

20131117185439:       Error: Field not found - <blablabla>
20131117185445:       General Script Error
20131117185445:       Execution Failed
20131117185445:      Execution finished.

所以有空格和其他字符等

此致

1 个答案:

答案 0 :(得分:3)

&&运算符在前一个命令生成errorlevel零时执行以下命令,因此这应该是等效的,并且当在日志文件中找到'Error'时将转移到:sendmail标签

findstr "Error" "%LOG%" >nul && goto :sendmail

该协同运算符为||,并且它在非零的错误级别上执行以下命令。

要检查变量是否为空,您可以使用:

if not defined variablename goto :sendmail