Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 使用批脚本验证控制台输出_Batch File - Fatal编程技术网

Batch file 使用批脚本验证控制台输出

Batch file 使用批脚本验证控制台输出,batch-file,Batch File,我的剧本 开始/等待/b groovy-cp%webservicejarpath%importFile.groovy-p ProcessYYY-i PDF“ 给出如下控制台输出,有点像这样:: 已成功执行处理单元“ProcessYYY”中的pdf“data.pdf”。 返回值: 问题是我不知道如何捕获这些信息并使用批处理脚本验证结果。 例如:如果(result==“successful”)&&(errorimportedfiles==0),则回显“PDF导入成功” 是否有一种方法可以使用批划

我的剧本


开始/等待/b groovy-cp%webservicejarpath%importFile.groovy-p ProcessYYY-i PDF“

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

已成功执行处理单元“ProcessYYY”中的pdf“data.pdf”。 返回值:


问题是我不知道如何捕获这些信息并使用批处理脚本验证结果。 例如:如果(result==“successful”)&&(errorimportedfiles==0),则回显“PDF导入成功”

是否有一种方法可以使用批划线来验证结果?
提前感谢。

您可以使用“查找”在输出中查找文本

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 executed the pdf”,那么%ERRORLEVEL%将为0

如果有错误,它将等于1

更改代码,改为输出到文件,通常情况下,末端的find命令可以工作,但是如果不是这个命令,那么先保存到文件,然后检查文件,恩多在他的评论中也提到了这种方式


Martyn

您可以使用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 executed the pdf”,那么%ERRORLEVEL%将为0

如果有错误,它将等于1

更改代码,改为输出到文件,通常情况下,末端的find命令可以工作,但是如果不是这个命令,那么先保存到文件,然后检查文件,恩多在他的评论中也提到了这种方式


Martyn

您可以将控制台输出放在一个文件中,并使用批处理扫描该文件:
start/wait/b groovy-cp%webservicejarpath%importFile.groovy-p ProcessYYY-i PDF>ERROR.LOG
。请先尝试创建日志文件。@endro:谢谢您提出的解决方案。我将尝试创建一个日志,然后用这些值解析日志文件。再次感谢。好的。我现在刚刚登录查看答案。我看到了你的评论。顺便说一句,每当我发现一个答案解决了我的问题,哪怕是一点点,我都会竭尽全力去接受。无论如何,谢谢您的努力。您可以将控制台输出放在一个文件中,并使用批处理扫描该文件:
start/wait/b groovy-cp%webservicejarpath%importFile.groovy-p ProcessYYY-i PDF“>错误。日志
。请先尝试创建日志文件。@endro:谢谢您提出的解决方案。我将尝试创建一个日志,然后用这些值解析日志文件。再次感谢。好的。我现在刚刚登录查看答案。我看到了你的评论。顺便说一句,每当我发现一个答案解决了我的问题,哪怕是一点点,我都会竭尽全力去接受。无论如何,谢谢你的努力。嗨,马丁,谢谢你的解决方案。它会很好地解决我的问题。我将设法采纳你的意见。再次感谢。现在开始/wait/b groovy-cp%webservicejarpath%importFile.groovy-p ProcessYYY-i PDF“| Find”信息结果=“。其余如u所说。。问题是光标在找到文本时等待,因此下面的脚本不会执行。所以没有任何回应。通过这种方式,完整结果也不会显示到控制台,而只会显示部分,直到找到文本为止……有进一步的建议吗?编辑答案,在错误检查后包括goto fail,my error。您介意发布批处理文件中的内容吗?start/wait/b groovy-cp%webservicejarpath%importFile.groovy-p ProcessYYY-i PDF“| Find”info result=“如果%ERRORLEVEL%==0 goto success goto fail:success REM success,由于成功回送,请执行您想要的操作”导入成功结束:失败REM失败,做你想做的工作,因为它失败了。Echo“导入不成功”:endI在这里评论时不知道如何格式化代码。希望你得到它。无论如何,现在输出只是一行,其中包含文本“info result=”,光标就在那里等待。因此,输出是..我不希望控制台输出改变,只是如果它找到文本,它会回显消息。嗨,Martyn,谢谢你的解决方案。它会很好地解决我的问题。我将设法采纳你的意见。再次感谢。现在开始/wait/b groovy-cp%webservicejarpath%importFile.groovy-p ProcessYYY-i PDF“| Find”信息结果=“。其余如u所说。。问题是光标在找到文本时等待,因此下面的脚本不会执行。所以没有任何回应。通过这种方式,完整结果也不会显示到控制台,而只会显示部分,直到找到文本为止……有进一步的建议吗?编辑答案,在错误检查后包括goto fail,my error。您介意发布批处理文件中的内容吗?start/wait/b groovy-cp%webservicejarpath%importFile.groovy-p ProcessYYY-i PDF“| Find”info result=“如果%ERRORLEVEL%==0 goto success goto fail:success REM success,由于成功回送,请执行您想要的操作”导入成功结束:失败REM失败,做你想做的工作,因为它失败了。Echo“导入不成功”:endI在这里评论时不知道如何格式化代码。希望你得到它。无论如何,现在输出只是一行,其中包含文本“info result=”,光标就在那里等待。因此,输出是..我不希望控制台输出改变,只是如果它找到文本,它会回显消息。