说明
问题:
如何为Windows (10) 制作批处理文件,以便一遍又一遍地执行 grails 命令,直到其结果为止是成功的
>>> 我试过这个:How to run command until it succeeds?,但我没有运气。它执行命令仅限第一次,然后即使有一些错误解决依赖关系也会停止,如下图所示。
非常感谢一些帮助。
答案 0 :(得分:1)
评论太久了。修改How to run command until it succeeds?之后可能会完成这项工作:
:repeat
(grails command here |find /I "Error Resolve error obtaining dependencies") &&goto :repeat
echo Success!
阅读Redirection:
commandA && commandB
运行 commandA ,如果成功,则运行 commandBcommandA || commandB
运行 commandA ,如果失败则运行 commandB
和FIND will return an ErrorLevel as follows:
0
在至少一个文件中找到字符串。1
找不到字符串2
如果列表中的任何文件不存在或没有文件与通配符掩码匹配。提供了无效的开关。
答案 1 :(得分:0)
找到了解决方法:
<强>逻辑:强>
<强>代码:强>
@echo off
:loop
echo Executing command...
call grails war
if exist "<full_path_to_war_file>" (
echo Success!
) else (
echo Failed!
echo Retrying!
goto loop
)
echo Done!
重要提示:此变体使用grails的功能来创建战争。在创建战争之前,Grails尝试解决那些挂起的依赖项,因此如果失败,则永远不会发生战争,这样就可以检测到依赖项解析的失败。
我想说我从来没有做过.bat直到现在(所以,这可能会有很大改进),并且非常感谢那些发布在这里的人。