Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.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 Jenkins-批处理等待进程启动,如果进程挂起,则将其杀死_Batch File_Jenkins - Fatal编程技术网

Batch file Jenkins-批处理等待进程启动,如果进程挂起,则将其杀死

Batch file Jenkins-批处理等待进程启动,如果进程挂起,则将其杀死,batch-file,jenkins,Batch File,Jenkins,我在Windows上使用Jenkins,希望运行csscript来启动应用程序并执行自动测试,现在我想创建一个超时,以防应用程序运行超过30分钟,它将被终止 我有一个批处理脚本:首先创建一个FOR循环,等待应用程序启动,然后创建另一个FOR循环,检查应用程序是否启动超过25分钟 问题是我在第一个循环中遇到了这个错误 进程泄漏的文件描述符。有关更多信息,请参阅 我读了维基上的信息,但不知道如何解决我的问题 请帮忙 start cscript //nologo D:\tets.vbs FOR /L

我在Windows上使用Jenkins,希望运行csscript来启动应用程序并执行自动测试,现在我想创建一个超时,以防应用程序运行超过30分钟,它将被终止

我有一个批处理脚本:首先创建一个FOR循环,等待应用程序启动,然后创建另一个FOR循环,检查应用程序是否启动超过25分钟

问题是我在第一个循环中遇到了这个错误 进程泄漏的文件描述符。有关更多信息,请参阅 我读了维基上的信息,但不知道如何解决我的问题 请帮忙

start cscript //nologo D:\tets.vbs
FOR /L %%A IN (1,1,20) DO (
    echo Round number %%A

    REM find the running executable
    tasklist | find /I /C "App.exe" > nul
    echo ERRORLEVEL is !ERRORLEVEL!
    IF !ERRORLEVEL! EQU 0 EXIT

    rem wait 3 seconds
    ping 1.1.1.1 -n 1 -w 3000 > nul
)
FOR /L %%U IN (1,1,50) DO (
    echo Round number %%U

    REM find the running executable
    tasklist | find /I /C "App.exe" > nul
    echo ERRORLEVEL is !ERRORLEVEL!
    if !ERRORLEVEL! EQU 1 EXIT

    rem wait 30 seconds
    ping 1.1.1.1 -n 1 -w 30000 > nul
)
echo TASKILL
taskkill /f /im App.exe

如果要使生成超时,请使用

编辑:
对于您链接的文章,建议使用
at
命令。而不是:
启动cscript//nologo D:\tets.vbs

使用
在%time%启动cscript//nologo D:\tets.vbs


您必须计算下一个
%time%
(以分钟为单位),显然作业必须等待该分钟开始,因此最多延迟1秒,最糟糕的延迟59秒。

谢谢您的建议,但如果超时,我希望Jenkins运行下一个csscript,而不是中止整个构建HMMM,您可以发送一个如何在批处理文件中实现这一点的示例吗?类似于
FOR/F“usebackq tokens=2 delims=:”%%a in(`time/T`)DO(SET/a“time=%%a+1”)
但您必须考虑从第59分钟滚动到下一个小时,等等。第12个小时,滚动到1或13分钟,取决于您的本地语言,等等