以编程方式检测过时的 Chocolatey 包

Detecting an outdated Chocolatey package programmatically

在我使用 Chocolatey 提供 Jenkins 构建节点时,我需要在 choco upgrade 之后 and/or 之前执行某些操作(例如,停止 Jenkins 服务,或 安装后)。

我最简单的替代方法是始终执行这些操作,无论是否确实 available/was 安装了升级,但理想情况下,我只会在安装时执行这些操作。我将 choco upgrade <pkg> --whatif 视为一种检测单个过时包的方法,但由于没有解析输出(例如,查找字符串“可用”),因此看起来不像是一种以编程方式检测结果的简单方法.例如运行这个命令后的%ERRORLEVEL%无论是否有升级都是0。

根据我的情况,是否有比上面建议的解析输出更好的替代方法?

您是否考虑过使用 choco outdated 命令的输出?

可在此处找到有关此的完整信息:

https://chocolatey.org/docs/commands-outdated

我认为您会执行的命令是:

choco outdated -r

这将为您提供最相关的信息,您可以快速解析这些信息以确定您感兴趣的程序是否已过时。