還在為重灌電腦後需要一一下載安裝軟體而頭痛嗎?每次環境設定都像一場馬拉松般耗時費力?別擔心,今天我要介紹的 Chocolatey 神技,讓你只需準備兩行 PowerShell 指令,就能一鍵還原所有常用軟體,省下寶貴的時間來做更重要的事!

Chocolatey 是什麼?為何我現在才知道?

Chocolatey 是 Windows 平台上的套件管理工具,如果你用過 Linux 的 apt 或 Mac 的 Homebrew,就會覺得 Chocolatey 相當親切。它讓你能透過命令列來安裝、更新和管理各種軟體,不必再手動下載安裝檔、點擊下一步、同意條款⋯⋯這些繁瑣的步驟。

想想看,你是否曾經歷過這樣的情境:

週一早上,筆電突然藍屏,送修後技術人員告訴你:「已經重灌系統了,資料都在,軟體得自己裝回去。」你內心OS:「天啊,又要花一整天重新下載安裝所有工作用軟體...」

有了 Chocolatey,你只需執行一個指令檔,就能自動安裝回 Chrome、7-Zip、VS Code、Notepad++、Everything 等所有你日常使用的軟體。不只省時間,還能確保你不會忘記安裝某些不常用但關鍵時刻需要的工具。

安裝 Chocolatey:開始你的套件管理之旅

安裝 Chocolatey 超級簡單。只要開啟 PowerShell(以系統管理員身分執行),然後貼上以下指令:

1
2
3
Set-ExecutionPolicy Bypass -Scope Process -Force
[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072
iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))

輸入完指令後,按下 Enter 鍵,PowerShell 會自動下載並安裝 Chocolatey。安裝完成後,你可以輸入 choco -v 來確認是否安裝成功以及查看版本號。

用 Chocolatey 安裝軟體:再見,下一步按鈕!

有了 Chocolatey 後,安裝軟體變得超簡單。例如,如果你想安裝 Google Chrome,只需在 PowerShell 中輸入:

1
choco install googlechrome -y

這個指令會自動下載並安裝 Chrome 瀏覽器,-y 參數表示自動同意所有提示,讓安裝過程完全自動化。

你也可以一次安裝多個軟體:

1
choco install 7zip vscode notepadplusplus everything googlechrome -y

這樣就能一次安裝 7-Zip、VS Code、Notepad++、Everything 和 Chrome 五個軟體,省去了逐一下載安裝的麻煩。

使用 PowerShell 備份你的軟體清單:智慧工程師的自保之道

這才是今天的重點!你可以使用 PowerShell 指令來備份已安裝的 Chocolatey 套件清單,以便在新電腦或重灌後快速還原。

首先,開啟 PowerShell,輸入以下指令來匯出所有已安裝的套件:

1
choco list --local-only --id-only | Select-Object -Skip 1 | Where-Object { $_ -ne "" } | Out-File -FilePath "$env:USERPROFILE\Desktop\chocolatey-packages.txt"

這個指令會建立一個名為 chocolatey-packages.txt 的檔案在你的桌面上,裡面包含了所有通過 Chocolatey 安裝的軟體名稱。

我們來解析一下這個指令:

  • choco list --local-only --id-only:列出所有本機安裝的 Chocolatey 套件,只顯示 ID
  • Select-Object -Skip 1:跳過第一行(通常是標題行)
  • Where-Object { $_ -ne "" }:過濾掉空行
  • Out-File -FilePath "$env:USERPROFILE\Desktop\chocolatey-packages.txt":將結果輸出到桌面的檔案中

快速還原所有軟體:電腦重灌不再是噩夢

當你需要在新電腦或重灌系統後還原軟體時,只需執行以下步驟:

  1. 安裝 Chocolatey(見上文)
  2. 將之前備份的 chocolatey-packages.txt 檔案複製到新電腦上
  3. 開啟 PowerShell(以系統管理員身分執行),然後執行以下指令:
1
Get-Content -Path "檔案路徑\chocolatey-packages.txt" | ForEach-Object { choco install $_ -y }

將「檔案路徑」替換為你存放 chocolatey-packages.txt 的實際路徑。例如,如果檔案在桌面上:

1
Get-Content -Path "$env:USERPROFILE\Desktop\chocolatey-packages.txt" | ForEach-Object { choco install $_ -y }

這個指令會讀取檔案中的每一行,並使用 Chocolatey 安裝對應的軟體,-y 參數確保安裝過程中自動同意所有提示。

進階技巧:創建一個一鍵安裝腳本

你也可以創建一個更完整的 PowerShell 腳本,將備份和還原過程進一步自動化。以下是一個範例腳本:

備份腳本 (backup-packages.ps1)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# 確認是否以管理員權限運行
if (-NOT ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)) {
Write-Warning "請以系統管理員身分執行此腳本"
break
}

# 備份路徑,這裡設定為桌面
$backupPath = "$env:USERPROFILE\Desktop\chocolatey-backup"

# 如果備份資料夾不存在則創建
if (!(Test-Path -Path $backupPath)) {
New-Item -ItemType Directory -Path $backupPath | Out-Null
}

# 備份已安裝的套件
$packagesFile = "$backupPath\packages.txt"
Write-Host "正在備份已安裝的 Chocolatey 套件..."
choco list --local-only --id-only | Select-Object -Skip 1 | Where-Object { $_ -ne "" } | Out-File -FilePath $packagesFile

# 創建還原腳本
$restoreScriptPath = "$backupPath\restore-packages.ps1"
$restoreScript = @"
# 確認是否以管理員權限運行
if (-NOT ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)) {
Write-Warning "請以系統管理員身分執行此腳本"
break
}

# 檢查 Chocolatey 是否已安裝
if (!(Get-Command choco -ErrorAction SilentlyContinue)) {
Write-Host "正在安裝 Chocolatey..."
Set-ExecutionPolicy Bypass -Scope Process -Force
[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072
iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
}

# 還原套件
Write-Host "正在還原 Chocolatey 套件..."
Get-Content -Path "$((Get-Item -Path `$PSScriptRoot).FullName)\packages.txt" | ForEach-Object {
Write-Host "安裝套件: `$_" -ForegroundColor Cyan
choco install `$_ -y
}

Write-Host "所有套件已還原完成!" -ForegroundColor Green
Read-Host "按 Enter 鍵結束"
"@

$restoreScript | Out-File -FilePath $restoreScriptPath

Write-Host "備份完成!" -ForegroundColor Green
Write-Host "備份檔案和還原腳本已保存到: $backupPath" -ForegroundColor Yellow
Write-Host "在新系統上,只需執行 restore-packages.ps1 腳本即可還原所有軟體。" -ForegroundColor Yellow
Read-Host "按 Enter 鍵結束"

這個進階腳本不只會備份你的套件清單,還會自動產生一個還原腳本,讓整個還原過程更加簡單。你只需要將整個 chocolatey-backup 資料夾複製到新電腦,然後執行 restore-packages.ps1 即可。

獲取更好的體驗:Chocolatey GUI

如果你不太喜歡命令列界面,Chocolatey 也提供了圖形界面版本 Chocolatey GUI,讓你可以用更直觀的方式管理套件。安裝方法很簡單:

1
choco install chocolateygui -y

安裝完成後,你可以在開始選單中找到 Chocolatey GUI,透過它來搜尋、安裝、更新和移除軟體,就像使用應用商店一樣簡單。

結語:工作效率的小革命

當我第一次使用 Chocolatey 時,才發現原來電腦重灌後的軟體安裝可以如此輕鬆。這個小工具徹底改變了我管理 Windows 軟體的方式,節省了大量的時間和精力。不只是對個人用戶,對於 IT 部門來說,Chocolatey 也是批量部署軟體的強大工具。

下次當你的電腦需要重灌,或者當你幫朋友設定新電腦時,不妨試試 Chocolatey 和這篇文章中提到的 PowerShell 指令,你會發現,原來電腦設定也可以如此簡單高效!