使用 winget 快速批次安裝軟體

從 windows 11 開始都會內建 winget ,能夠用來安裝、更新和刪除電腦中的應用程式,筆者曾經寫過一篇用來介紹 Winget 的基本使用方式:Windows 使用 winget 快速更新軟體

能夠使用指令安裝程式真的很方便,省去許多繁瑣的步驟,既然可以安裝一個,那能不能批次安裝,使用預先寫好的腳本一次安裝多個軟體呢?當然,而且不用「寫」,可以自動產生

匯出已安裝軟體清單

而 winget 提供匯出的指令,只要一行就會自動掃描電腦中所包含的、可以安裝的軟體
    
winget export -o install.json
    

-o 參數後面放置檔名和路徑,執行後就會將可安裝的軟體列出

只是有許多套件並不會被列出來,包含從 Microsoft Store 中安裝的套件 匯出內容範例:

使用已安裝軟體清單批次安裝

使用下面的指令就可以一行安裝完了
    
winget import install.json
    

不過可能會跳出權限請求,所以在信任軟體開發者的情況下可以使用系統管理員身分執行上面的程式,並且附加 --accept-source-agreements 參數。

全部可以附加的參數: --ignore-unavailable 略過無法使用的套件
--ignore-versions 忽略匯入檔案中的套件版本
--accept-package-agreements 接受套件的所有授權合約
--accept-source-agreements 在來源作業期間接受所有來源合約

使用 winget 安裝 Microsoft Store 中的軟體

註:目前使用下面的方式找到的 id 還無法應用在 import 指令的安裝中,若有解決方式時會再更新文章

以 Slack 這款軟體舉例,使用 export 指令時顯示「已安裝套件無法從任何來源取得: Slack」,不過實際上這款軟體有上架到 Microsoft Store 中

複製網址後可以發現連結為:
    
ms-windows-store://pdp/?ProductId=9WZDNCRDK3WP&mode=mini
    

找到 ProductId ,這個例子中為: 9WZDNCRDK3WP

使用 winget search 指令可以找到有這款軟體
    
winget search 9WZDNCRDK3WP
    


找到了這個之後我們在安裝時可以使用 winget install 指令來安裝
    
winget install 9WZDNCRDK3WP
    



參考資料:
Winget export not exporting any Store installed apps #2307

留言