如何登录Winget?

问题描述 投票:0回答:1

我一直在尝试编写一个首先运行的脚本

winget upgrade --all --accept-package-agreements --accept-source-agreements --silent

命令,然后记录其结果。这意味着有些软件包由于哈希不匹配而无法安装 - 这对我来说没问题 - 并且有些软件包安装时不会出现问题。我想解析这两种类型的安装:1)成功和2)失败到我设置的文件夹中的.log文件中的2个表(

Format-Table
,如果我理解正确的话)。

我遇到的主要问题是我无法获取winget抛出的返回代码(即,软件包安装还是失败?),并且基于此我无法将输出解析为这两个表,其中包括: AppID、名称(软件)、大小(软件包)、日期(安装或安装失败)

有人可以帮助我吗?

尝试在官方 winget 文档中查找此内容,但找不到任何内容。他们确实提到了

--verbose
--verbonse-logs
--open-logs
,但他们没有做到我在这里想要实现的目标。

windows powershell command-line-interface winget
1个回答
0
投票

如果您使用

winget
CLI,您将需要解析可执行文件放入命令行输出中的文本。但是,如果您使用 Microsoft.WinGet.Client PowerShell 模块,则可以将
Install-WinGetPackage
的结果存储到变量中并访问
Status
InstallerErrorCode
属性或直接通过 Pipeline

访问它们
PS C:\Users\Trenly> Install-WinGetPackage Google.Chrome | Select-Object -Property Name,Status,InstallerErrorCode

Name          Status       InstallerErrorCode
----          ------       ------------------
Google Chrome InstallError                  3
© www.soinside.com 2019 - 2024. All rights reserved.