Batch file Jenkins批处理文件错误级别未更改

Batch file Jenkins批处理文件错误级别未更改,batch-file,uwp,jenkins-plugins,psexec,windows-task-scheduler,Batch File,Uwp,Jenkins Plugins,Psexec,Windows Task Scheduler,在我获得否决票之前,我已经检查了现有的链接,如:但无法复制修复。我主要有两个问题: 第一名: 所以我的剧本是: setlocal ENABLEDELAYEDEXPANSION REM Installing the application "%PSTOOLLOCATION%\PsExec.exe" \\%HOSTNAME% cmd /c schtasks /run /TN %SCHEDULEDINSTALLERTASKNAME% REM Waiting for i

在我获得否决票之前,我已经检查了现有的链接,如:但无法复制修复。我主要有两个问题:

第一名: 所以我的剧本是:

    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”。 我能看到的环境中唯一的变化是引入了另一个UWP表面(主机名),它通过jenkins slave连接

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

秒: 获取任务调度程序完整状态的命令仅给出第一行作为输出: 命令:

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作业的批处理部分中展开此命令,则效果良好。是否有任何打开的错误?

首先,在命令提示窗口中运行
if/?
,您可以在输出帮助中阅读
if errorlevel X
语法,这意味着命令/应用程序的退出代码是否大于或等于X。
if errorlevel X
或相反
if not errorlevel X
(低于X)在MS-DOS之后的任何地方都可以工作,即使在命令块中也不使用延迟扩展,因此应始终使用,而不是
if%ERRORLEVEL%==X
if!错误级别!==X
。谢谢Mofi。但问题不在于这里的情况。实际问题在于ERRORLEVEL的值。循环从不改变错误级别,而在机器上,状态已经改变。第二,真正的问题。您希望
| find“Ready”
会处理
schtasks
的输出。事实并非如此<代码>查找在处理PsExec输出的本地计算机上执行。您必须使用
^
转义重定向操作符
|
,以便在运行整个PsExec命令行之前,首先在
cmd.exe上将其解释为文字字符,即使用
^查找“Ready”
。是。这解决了我的问题。非常小的错误!:)status.txt问题的任何输入?您也不需要使用
PSEXEC
查询其他计算机
SCHTASKS
可以选择指定要查询的计算机。