【干货】Windows软件包管理器(WinGet)最实用教程

如题所述


WinGet, 作为微软官方推荐的Windows软件包管理工具,为Windows用户带来了前所未有的便利。它不仅支持exe、msi和msix/msixbundle格式的软件安装,还支持命令行操作,让你的软件管理如Linux般高效。为了充分利用WinGet,让我们深入理解其核心功能和如何通过命令行进行定制化管理。


安装与更新

首先,确保你的Windows系统版本在Windows 10 1709及以上或Windows 11,然后你可以通过Microsoft Store(非LTSC版)或GitHub获取。对于LTSC版本,需要先安装Microsoft Store环境,再使用wsreset.exe进行安装。Windows Terminal作为默认终端模拟器,提供了更为直观的体验,可设置为系统默认。


命令行操作

WinGet的强大在于其命令行操作,如更换源使用winget source add,搜索软件使用winget search,查看软件包信息则用winget search --list。通过这些命令,你可以轻松管理你的软件库,无论是添加新的源获取更多选择,还是查找特定软件的详细信息。


图形界面与自动化

对于更直观的用户界面,开源项目WingetUI提供了图形化的管理工具,包括搜索、安装、升级和卸载功能。你可以通过winget install命令直接安装WingetUI,或者在网络不稳定时手动下载。WingetUI支持多包管理器,让管理更加灵活。


对于自动化需求,创建批处理或PowerShell脚本至关重要。例如,你可以编写脚本来批量安装配置复杂的软件,提高部署效率。推荐使用PowerShell 7.0及以上版本,获取地址可以在Microsoft Store或GitHub找到。


示例脚本

想要定制化管理,可以编写如下的脚本片段,用于获取VC++Runtime、JDK和Git等常用软件包:



# 定义获取函数
function Get-WinGetPackage {
param($ID, $Name, $Type, $Class)
$PackageURL = (winget show --id $ID | Select-String "安装程序 URL" | % { $_ -replace "安装程序 URL:", "" } -replace " ", "")
$PackageVersion = (winget show --id $ID | Select-String "版本:" | % { $_ -replace "版本:", "" } -replace " ", "")
# 保存信息到日志和文件
Write-Output "$PackageURL $PackageVersion" | Out-File "$Script:PackageLog.txt"
}
# 示例命令
Get-WinGetPackage -ID "Microsoft.VCRedist.x86" -Name "Visual C++ 2015 Redistributable" -Type "exe" -Class "Components"

以上脚本展示了如何编写基本的WinGet包获取和记录功能,可根据实际需求扩展和定制。



通过灵活运用WinGet和相关工具,你可以实现更加高效和系统化的Windows软件管理,无论是基础安装还是高级定制,WinGet都能满足你的需求。记得关注官方文档以获取最新的功能更新和最佳实践。

温馨提示:答案为网友推荐,仅供参考
相似回答