共用方式為


升級命令 (winget)

winget 工具的 upgrade 命令會升級指定的應用程式。 或者,您可以使用 list 命令來識別您想要升級的應用程式。

upgrade 命令需要您指定要升級的確切字串。 如果有任何不明確的情況,系統會提示您進一步將 upgrade 命令篩選到確切的應用程式。

別名

此命令提供下列別名:

  • update

使用方式

winget upgrade [[-q] <query> ...] [<options>]

升級命令引數的影像

引數

下列是可用的引數。

引數 描述
-q,--query 用來搜尋應用程式的查詢。

注意

查詢引數是位置性。 不支援萬用字元樣式語法。 這通常是您預期有助於尋找要升級的字元字串。

選項。

這些選項可讓您自訂升級體驗,以符合您的需求。

選項 描述
-m, --manifest 後面必須接著資訊清單 (YAML) 檔案的路徑。 您可以從本機 YAML 檔案中使用資訊清單執行升級體驗。
--id 將升級限制為應用程式的識別碼。
--name 將搜尋限制為應用程式的名稱。
--moniker 將搜尋限制為針對應用程式列出的別名。
-v, --version 讓您指定要升級的確切版本。 如果未指定,則會升級目前最高版本的應用程式。
-s, --source 將搜尋限制為提供的來源名稱。 後面必須加上來源名稱。
-e, --exact 在查詢中使用確切字串,包括檢查是否區分大小寫。 其不會使用子字串的預設行為。
-i, --interactive 在互動模式中執行安裝程式。 預設體驗會顯示安裝程式的進度。
-h, --silent 以無訊息模式執行安裝程式。 這會隱藏所有 UI。 預設體驗會顯示安裝程式的進度。
--purge 刪除封裝目錄中的所有檔案和目錄 (可攜式)
-o, --log 將記錄導向至記錄檔。 您必須提供檔案路徑,而且您必須有該檔案的寫入權限。
--custom 除了預設值之外,要傳遞至安裝程式的引數。
--override 將直接傳遞至安裝程式的字串。
-l, --location 要升級的位置 (如果支援的話)。
--scope 選取已安裝的封裝範圍篩選 (使用者或電腦)。
a, --architecture 選取要安裝的架構。
--installer-type 選取要升級的安裝程式類型。 請參閱 WinGet 用戶端支援的安裝程式類型
--locale 指定要使用 BCP47 格式的地區設定。
--ignore-security-hash 忽略安裝程式雜湊檢查失敗。 不建議使用。
--allow-reboot 允許重新開機 (如適用)。
--skip-dependencies 略過處理套件相依性與 Windows 功能。
--ignore-local-archive-malware-scan 忽略從本機資訊清單安裝封存類型套件時所執行的惡意程式碼掃描。
--accept-package-agreements 用於接受授權合約且避免提示。
--accept-source-agreements 用於接受來源授權合約且避免提示。
--header 選用性的 Windows-Package-Manager REST 來源 HTTP 標頭。
--authentication-mode 指定驗證視窗喜好設定 (silent、silentPreferred 或 interactive)。
--authentication-account 指定要用於驗證的帳戶。
-r, --recurse, --all 將所有已安裝的套件升級至最新版本 (如果有的話)。
-u, --unknown, --include-unknown 即使無法判斷套件目前版本,也會升級套件。
--pinned,--include-pinned 即使套件有非封鎖釘選,也會升級套件。
--uninstall-previous 在升級期間將舊版的套件解除安裝。 行為將取決於個別套件。 某些安裝程式是設計來並存安裝新版本。 某些安裝程式包含指定「uninstallPrevious」的資訊清單,因此無需使用此命令旗標即可解除安裝早期版本。 在此情況下,不論套件資訊清單中的內容為何,使用 winget upgrade --uninstall-previous 命令會告訴 WinGet 解除安裝舊版。 如果套件資訊清單不包含「uninstallPrevious」,且未使用 -- uninstall-previous 旗標,則將會套用安裝程式的預設行為。
--force 直接執行命令,並以非安全性相關問題繼續。
-?,--help 顯示所選命令的說明。
--wait 提示使用者在結束之前按任何鍵。
--logs,--open-logs 開啟預設記錄位置。
--verbose, --verbose-logs 用於覆寫記錄設定,並建立詳細資訊記錄。
--nowarn,--ignore-warnings 隱藏警告輸出。
--disable-interactivity 停用互動式提示。
--proxy 設定此執行所要使用的 Proxy。
--no-proxy 停用此執行的 Proxy。

範例查詢

下列範例會升級特定版本的應用程式。

winget upgrade powertoys --version 0.15.2

下列範例會從其識別碼升級應用程式。

winget upgrade --id Microsoft.PowerToys

下列範例會顯示升級所有應用程式

winget upgrade --all

使用升級

若要識別哪些應用程式需要更新,只需使用升級而不需任何引數即可顯示所有可用的升級。

在下列範例中,您會看到 winget 升級會向使用者顯示哪些應用程式有可用的更新。 使用者會從可用的更新中,識別 JanDeDobbeleer.OhMyPosh 可用的更新,並使用 upgrade 來更新應用程式。

升級命令的示範動畫

使用 listupgrade

若要搜尋特定應用程式的可用更新,請使用 list 命令。 發現特定應用程式有可用的更新後,請使用 upgrade 來安裝最新的更新。

下列範例顯示用來識別 Microsoft.WindowsTerminalPreview 可用的 list 命令。 使用者接著會使用 upgrade 來更新應用程式。 將升級命令與清單命令搭配使用的動畫示範

upgrade --all

upgrade --all 會識別具有可用升級的所有應用程式。 當您執行 winget upgrade --all時,Windows 封裝管理員會尋找所有包含可用更新的應用程式,並嘗試安裝更新。

注意

某些應用程式不提供版本。 這些一律是最新的應用程式。 因為 Windows 封裝管理員無法識別是否有較新版本的應用程式,所以無法升級。

升級 -- uninstall-previous

upgrade --uninstall-previous 會在安裝較新版本的套件之前解除安裝舊版。 使用 --uninstall-previous 時,行為將取決於個別套件。 某些安裝程式是設計成並存安裝新版本,而其他安裝程式則包含指定 uninstallPrevious 為其預設升級行為的資訊清單 (因此,舊版會解除安裝,而不需要使用命令旗標)。

如果套件資訊清單不包含 uninstallPrevious 為升級行為,且 --uninstall-previous 旗標未與升級命令搭配使用,則將會套用安裝程式的預設行為。