使用批处理脚本验证控制台输出

时间:2013-07-23 12:44:03

标签: batch-file

我的剧本

  

start / wait / b groovy -cp%webservicejarpath%importFile.groovy -p ProcessYYY -i PDF“

给出以下控制台输出,有点像这样::

  

在处理单元'ProcessYYY'中成功执行了pdf'data.PDF'。   返回值:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <finalresult process="ProcessYYY" >
    <info result="successful"   time="12:11:12" totalfilesimported="1" errorimportedfiles="0">
    <jobs class="PDFIMPORT">
        <job id="Job1003"/>
    </jobs>
   </info>
  </finalresult>

问题是我不知道如何捕获此信息并使用批处理脚本验证结果。 例如。 :if(结果==“成功”)&amp;&amp; (errorimportedfiles == 0)然后Echo“导入PDF成功”。

有没有办法使用批量scritping验证结果? 提前谢谢。

1 个答案:

答案 0 :(得分:1)

您可以使用find在输出中查找文本。

start /wait /b groovy -cp %webservicejarpath% importFile.groovy -p ProcessYYY -i PDF" > out.txt

type out.txt | find "successful"

IF %ERRORLEVEL% == 0 goto success

goto fail


:success
REM SUCCESS, Do what work you want due to a success
echo "The import is successful"
goto end


:fail
REM Fail, DO what work you want because it failed.
echo "The import was not successful"



:end

您可以将任何内容放在“成功执行pdf”字符串的位置,该字符串对于成功的结果是唯一的。

为最后一个命令运行设置变量%ERRORLEVEL%,最后一个命令为FIND,因此如果找到字符串“Successfully execution the pdf”,则%ERRORLEVEL%将为0

如果出现错误,它将等于1。

更改代码,输出到文件,通常在末尾管道find命令会起作用,但如果不是这个命令然后先保存到文件然后检查文件,Endoro会在评论中提到这一点太

马丁