我可以以机器可读的格式导出已安装软件包的列表吗?
Can I export the list of installed packages in a machine-readable format?
我看到的获得已安装巧克力包列表的唯一方法是使用 "choco version all",它输出如下内容:
You have SourceTree v1.9.1.1 installed. Version 1.9.6.1 is available based on your source(s).
You have sysinternals v2016.07.04 installed. Version 2016.08.29 is available based on your source(s).
Chocolatey can upgrade 5/9 packages. 0 packages failed.
See the log for details (C:\ProgramData\chocolatey\logs\chocolatey.log).
Can upgrade:
- 7zip.install v16.02.0.20160811
- chocolatey v0.10.0
- sourcetree v1.9.6.1
- 7zip v16.02.0.20160811
- sysinternals v2016.08.29
对于交互式控制台输出来说还不错,但是对于创建报告的解析就很糟糕了。有什么方法可以让我以 xml 或 json 或某种标准化格式获取此信息,而不必自己解析上述信息?
几乎所有巧克力命令都使用 -r, --limitoutput, --limit-output
开关,这意味着:
Limit the output to essential information
查看此 page 了解有关可用开关的更多信息。
通过执行 choco version all -r
,您将获得更易于解析的输出。例如:
7zip|9.22.01.20130618|16.02.0.20160811|false
7zip.commandline|16.02|16.02.0.20160811|false
7zip.install|9.22.01.20130618|16.02.0.20160811|false
Atom|0.174.1|1.0.7|false
autohotkey.portable|1.1.22.01|1.1.24.01|false
BingDesktop|1.3.463.0|1.3.463.0|false
Boxstarter|2.4.209|2.8.29|false
但是,您询问的是导出 "installed" 包列表的命令。
巧克力列表-lo -r
该命令记录为 choco list --local-only
。它 运行大约一秒 并且当 choco list -lo -r
:
时输出如下所示
7zip|9.22.01.20130618
7zip.commandline|16.02
7zip.install|9.22.01.20130618
Atom|0.174.1
autohotkey.portable|1.1.22.01
BingDesktop|1.3.463.0
Boxstarter|2.4.209
Boxstarter.Common|2.4.209
cake.portable|0.15.2
calibre|2.48.0
ccleaner|5.19.5633
chocolatey|0.10.0
chocolatey.extension|1.4.1
ChocolateyGUI|0.14.0-unstable0002
ChocolateyPackageUpdater|0.6.11.0
我看到的获得已安装巧克力包列表的唯一方法是使用 "choco version all",它输出如下内容:
You have SourceTree v1.9.1.1 installed. Version 1.9.6.1 is available based on your source(s).
You have sysinternals v2016.07.04 installed. Version 2016.08.29 is available based on your source(s).
Chocolatey can upgrade 5/9 packages. 0 packages failed.
See the log for details (C:\ProgramData\chocolatey\logs\chocolatey.log).
Can upgrade:
- 7zip.install v16.02.0.20160811
- chocolatey v0.10.0
- sourcetree v1.9.6.1
- 7zip v16.02.0.20160811
- sysinternals v2016.08.29
对于交互式控制台输出来说还不错,但是对于创建报告的解析就很糟糕了。有什么方法可以让我以 xml 或 json 或某种标准化格式获取此信息,而不必自己解析上述信息?
几乎所有巧克力命令都使用 -r, --limitoutput, --limit-output
开关,这意味着:
Limit the output to essential information
查看此 page 了解有关可用开关的更多信息。
通过执行 choco version all -r
,您将获得更易于解析的输出。例如:
7zip|9.22.01.20130618|16.02.0.20160811|false
7zip.commandline|16.02|16.02.0.20160811|false
7zip.install|9.22.01.20130618|16.02.0.20160811|false
Atom|0.174.1|1.0.7|false
autohotkey.portable|1.1.22.01|1.1.24.01|false
BingDesktop|1.3.463.0|1.3.463.0|false
Boxstarter|2.4.209|2.8.29|false
但是,您询问的是导出 "installed" 包列表的命令。
巧克力列表-lo -r
该命令记录为 choco list --local-only
。它 运行大约一秒 并且当 choco list -lo -r
:
7zip|9.22.01.20130618
7zip.commandline|16.02
7zip.install|9.22.01.20130618
Atom|0.174.1
autohotkey.portable|1.1.22.01
BingDesktop|1.3.463.0
Boxstarter|2.4.209
Boxstarter.Common|2.4.209
cake.portable|0.15.2
calibre|2.48.0
ccleaner|5.19.5633
chocolatey|0.10.0
chocolatey.extension|1.4.1
ChocolateyGUI|0.14.0-unstable0002
ChocolateyPackageUpdater|0.6.11.0