寫在前面#
畢業十年,幾乎一直用電腦寫字畫畫做設計做視頻,對敲代碼一直是抗拒的,直到重裝過無數次系統,每次都要重新安裝一下午軟件,甚至在 nas 裡專門有個軟件安裝包文件夾,我的終極命運不會是敲代碼吧?
什麼是 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 的我也做了一個 :) 。