Jenkins powershell块不会等到完成

时间:2019-02-13 20:06:16

标签: matlab powershell jenkins command-line command-prompt

Jenkins powershell块不会等到完成时才进入下一个块,即Windows批处理命令。通过对所有变量进行回显测试,所有变量均可以正常工作,并且控制台输出显示其正确值。

Windows Powershell块

Start-Process -FilePath "C:\Program Files\MATLAB\R2018b\bin\matlab.exe" -ArgumentList "-automation -nosplash -nodesktop -wait -r `"echo ; cd $DOMAIN\Framework\Integration; setDOMAINPath $DOMAIN; disp(iAnalytics.domain.getSingleton.getRevision); createExecutable; exit`" -logfile $logfile" -Credential $credential -wait

然后立即进入该可执行文件,该可执行文件是由Matlab创建的,因此找不到它并导致工作失败。

Windows批处理命令

cd %Domain%\ModuleTest
DomainTestConsistency.exe

那么,有没有一种方法让Jenkins等待Powershell进程结束,然后才执行下一个程序块所需的时间呢?我尝试添加-wait和管道|无效,但无济于事。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您将要使用$?自动变量。 (https://ss64.com/ps/syntax-automatic-variables.html)如果最后一个操作成功,则返回TRUE,否则返回FALSE。

#run first command 

if($? = "true")
{
    #run second command
}
else
{
Write-Host "first command has failed"
}