Jenkins批处理文件ERRORLEVEL不变

时间:2018-05-25 04:30:28

标签: batch-file uwp jenkins-plugins psexec schtasks

在我获得downvote之前,我检查了现有的链接,例如:jenkins return code但是无法重现修复。我主要有两个问题:

首先: 所以我的脚本是:

    setlocal ENABLEDELAYEDEXPANSION
    REM Installing the application
    "%PSTOOLLOCATION%\PsExec.exe" \\%HOSTNAME% cmd /c schtasks /run /TN %SCHEDULEDINSTALLERTASKNAME%

    REM Waiting for installation to complete
    :loop
    %PSTOOLLOCATION%\PsExec.exe \\%HOSTNAME% cmd /c schtasks /Query /tn %SCHEDULEDINSTALLERTASKNAME% /fo table /nh | find "Ready"
    echo !ERRORLEVEL!
    echo %ERRORLEVEL%
    echo ERRORLEVEL
    IF !ERRORLEVEL!==1 (
      echo "Installation in progress"
      goto :loop
    ) ELSE (
      echo "Installation complete"
    )

无论是否启用/禁用setlocal命令,输出始终为“1”。 我能看到的唯一环境变化是引入了另一个通过jenkins slave连接的UWP表面(HOSTNAME)。

我希望在每次循环运行中更新状态。

第二 应该获得任务计划的完整状态的命令仅给出第一行作为输出: 命令:

cmd /c "%PSTOOLLOCATION%\PsExec.exe \\%HOSTNAME% cmd /c schtasks /query /tn %SCHEDULEDINSTALLERTASKNAME% /fo list" > status.txt

预期产出:

Folder: \
HostName:      CTSURFACE1
TaskName:      \TASKNAME
Next Run Time: N/A
Status:        Ready
Logon Mode:    Interactive/Background

收到的输出:

Folder: \

只有当命令通过jenkins中的批处理文件(run.bat)运行时才能重现。如果我在jenkins作业的批处理部分中展开此命令,这可以正常工作。对此有任何公开的错误吗?

0 个答案:

没有答案