Windows 软件商店平替——Winget

作者: chenyang   日期: 2024/03/1   类别: 技术笔记   字数: 共2970字   阅读: 164

cover

什么是 winget

winget 是微软推出运行在 Windows 终端中的一个软件管理工具,仅在Windows 10 1709 及更高版本中支持,核心命令是 winget 。 在终端输入 winget 你会看到:

PS C:\Users\cgart> winget
Windows 程序包管理器 v1.7.10582
版权所有 (C) Microsoft Corporation。保留所有权利。

WinGet 命令行实用工具可从命令行安装应用程序和其他程序包。

使用情况: winget  [<命令>] [<选项>]

下列命令有效:
  install    安装给定的程序包
  show       显示包的相关信息
  source     管理程序包的来源
  search     查找并显示程序包的基本信息
  list       显示已安装的程序包
  upgrade    显示并执行可用升级
  uninstall  卸载给定的程序包
  hash       哈希安装程序的帮助程序
  validate   验证清单文件
  settings   打开设置或设置管理员设置
  features   显示实验性功能的状态
  export     导出已安装程序包的列表
  import     安装文件中的所有程序包
  pin        管理包钉
  configure  将系统配置为所需状态
  download   从给定的程序包下载安装程序
  repair     修复所选包

如需特定命令的更多详细信息,请向其传递帮助参数。 [-?]

下列选项可用:
  -v,--version              显示工具的版本
  --info                    显示工具的常规信息
  -?,--help                 显示选定命令的帮助信息
  --wait                    提示用户在退出前按任意键
  --logs,--open-logs        打开默认日志位置
  --verbose,--verbose-logs  启用 WinGet 的详细日志记录
  --disable-interactivity   禁用交互式提示

可在此找到更多帮助: "https://aka.ms/winget-command-help"

为什么推荐使用 winget

winget 的优势

  • 免费:Windows 自带的。
  • 功能简洁全面:winget具备搜索、下载、安装、升级、卸载以及配置软件包的功能,对于一个软件管理工具,这就是全部的核心功能,够用了。
  • 操作便捷:不需要去各大网站挨个下载安装包,只需在命令行中输入相应的命令,即可方便地进行软件包的各项操作,不用下载一堆安装包点来点去,有时还要看着进度条跑。
  • 安全可靠:通过winget安装的软件包均来自微软官方或可信的源,避免了从非官方渠道下载软件可能带来的安全风险,如流氓捆绑软件、病毒等。
  • 易于学习:winget的命令相对简单,用户只需稍加学习即可快速掌握,无需具备复杂的编程或技术背景。
  • 集成度高:winget可以与Windows Terminal、PowerShell或CMD等集成,用户可以在这些环境中直接使用winget命令。
  • 支持多种格式:新版本的winget支持采用.zip格式的软件包,这意味着它可以从.zip文件中提取并运行安装程序,或者从文件中安装一个或多个可移植软件包,进一步扩大了其适用范围。 ### winget 的缺点
  • 软件源限制:winget的软件源可能有限,有时候想要安装的软件包并未被收录。这限制了用户的选择范围,尤其是对于那些寻找特定或小众软件的用户。
  • 命令行操作门槛:winget是基于命令行的工具,这对于不熟悉命令行的人来说可能存在一定的学习门槛。虽然winget的命令相对简单,但对于部分人来说,使用命令行进行操作可能仍然会感到不便。
  • 更新速度:winget的更新速度可能不如一些第三方软件包管理工具快。这意味着一些新发布的软件包可能无法在第一时间通过winget进行安装或更新。不过对于软件版本来说,我反而不建议非要安装最新版,这点见仁见智吧。
  • 社区支持:与一些流行的第三方软件包管理工具相比,winget的社区支持可能相对较弱。这可能导致人们在遇到问题时难以找到解决方案或获得帮助。

如何使用 winget

我们使用 winget 最常见的使用场景就是搜索,安装,卸载常用的软件。

常用的 winget 命令有以下几个: winget search <keywords> 搜索安装包 winget install <appname/id> 安装软件 winget uninstall <appname/id> 卸载软件 winget update 检查所有软件更新 winget upgrade --all 更新所有软件

例如安装微信,可以使用搜索命令 winget search 微信,得到如上结果。

PowerShell 7.4.1
PS C:\Users\cgart> winget search 微信
名称                  ID                     版本         匹配      源
---------------------------------------------------------------------------
微信输入法            XPFFFP686NDRDZ         Unknown                msstore
金舟多聊-微信多开分身 XPFCVS08QJF2ZH         Unknown                msstore
万兴数据管家          Wondershare.WXRecovery 3.5.20.4     Tag: 微信 winget
微信开发者工具        Tencent.WeixinDevTools 1.06.2402021 Tag: 微信 winget
企业微信              Tencent.WeCom          4.1.20.6024  Tag: 微信 winget
WeChat                Tencent.WeChat         3.9.9.43     Tag: 微信 winget
微信输入法            Tencent.WeType         1.0.4.289              winget
PS C:\Users\cgart>

因为带有“微信”关键词的安装包有很多,因此安装特定安装包的时候应输入安装包的 ID,这里微信的 ID 是 Tencent.WeChat ,因此我们输入命令 winget install Tencent.WeChat 即可。微信会自动安装,整个过程方便,安全,安静。

举一反三,你可以尝试使用其他命令,对软件进行搜索,安装,更新,卸载。

自动化安装脚本

虽然我们只需要敲几个字母,不再需要到浏览器里搜索下载常用的安装包了,但是每次重装系统的时候还要一行一行的敲命令,也是挺麻烦的,所以我自己写了一个自动运行命令的安装脚本,放在GitHub上,可以免费下载使用。传送门在此

整个脚本结构其实非常简单:

@echo off

REM 检查是否存在软件列表文件
if not exist "software_list.txt" (
    echo Software list file does not exist! Please create the software list file and run the script again.
    exit /b
)

REM 逐行读取软件列表文件并安装软件
for /f "tokens=*" %%a in (software_list.txt) do (
    echo Installing software: %%a
    winget install %%a 
)

echo All software is already installed!
pause

这样每次面对一台刚刚重装系统或者刚买的电脑,只需要运行这个脚本,就可以把常用的软件一次性安装好了。

所有的列表保存在这个 txt 文档里,每一行是一个软件 ID。脚本运行的时候会逐一读取每一行的ID,执行安装命令。注意,如果已经安装的软件则会检查更新并升级到最新版本。默认情况下,列表里的软件是我自己常用的,你可以根据需要自己增减定制。

哦对了,mac 的我也做了一个 🙂 。

除非注明,CG艺术实验室文章均为原创,本文地址 https://cgartlab.com/windows-software-store-winget/,转载请以链接形式注明出处。

作者: 简介:一位想做产品,无限热爱画画写作,却误涉编程领域的动画师。

《Windows 软件商店平替——Winget》留言数:0

发表留言