PowerShell 自動備份檔案

PowerShell 自動備份檔案教學:完整流程從建立腳本到排程執行

在 Windows 系統管理中,資料備份是最基本且重要的工作之一。本篇將透過完整教學,帶你從零開始使用 PowerShell 自動備份檔案,從建立資料夾、建立腳本檔案 backup.ps1、撰寫備份內容,到最後設定排程自動執行。整個流程會清楚標示每段指令「屬於哪個檔案或操作」,讓新手可以完全理解每一步在做什麼,避免混淆問題,快速建立可實務運作的備份機制。

建立資料夾與腳本檔案

此階段在 PowerShell 視窗操作,用來建立備份資料夾與腳本資料夾,指令**不是寫在檔案內**,而是直接執行。

項目設定
來源資料C:\Users\Public\Documents
備份位置D:\Backup
腳本檔案C:\Scripts\backup.ps1
# 【執行位置:PowerShell 視窗】

Set-Location C:\
New-Item -Path "C:\Scripts" -ItemType Directory
# 建立腳本資料夾

notepad C:\Scripts\backup.ps1
# 建立並開啟腳本檔案

Set-Location D:\
New-Item -Path "D:\Backup" -ItemType Directory
# 建立備份主資料夾

撰寫 backup.ps1 與排程執行

以下內容寫入 backup.ps1 檔案,負責執行實際備份:

# 【檔案:C:\Scripts\backup.ps1】

$source = "C:\Users\Public\Documents"
$destination = "D:\Backup"
$date = Get-Date -Format "yyyy-MM-dd"
$backupFolder = "$destination\Backup-$date"

New-Item -Path $backupFolder -ItemType Directory -Force
Copy-Item -Path "$source\*" -Destination $backupFolder -Recurse -Force
Write-Host "備份完成:" $backupFolder

以下指令在 PowerShell 視窗執行,用於手動測試與建立排程,不屬於 backup.ps1 檔案內容

# 【執行位置:PowerShell 視窗】

powershell.exe -ExecutionPolicy Bypass -File C:\Scripts\backup.ps1
# 手動執行測試

schtasks /create /tn "DailyBackup" /tr "powershell.exe -File C:\Scripts\backup.ps1" /sc daily /st 02:00
# 建立每天凌晨 2 點執行的排程

schtasks /run /tn "DailyBackup"
# 立即執行排程測試

FAQ 常見問題

PowerShell 備份腳本要存在哪裡?

建議放在固定位置,如 C:\Scripts,方便管理與排程設定。

backup.ps1 內容是什麼?

backup.ps1 包含來源路徑、目標路徑、日期命名、Copy-Item 指令,負責實際備份。

如何測試備份是否成功?

透過 powershell.exe 手動執行,檢查 D:\Backup 是否有日期資料夾與檔案。

排程任務在哪裡?

排程存在 Windows 任務排程器中,不是檔案,可以在系統工具查看或修改。

備份會覆蓋舊檔嗎?

使用日期命名資料夾可避免覆蓋,每天建立新的版本,方便還原。

為什麼腳本執行失敗?

原因可能是權限不足、ExecutionPolicy 限制或路徑錯誤,建議檢查設定。

可以備份到 NAS 或遠端嗎?

將目標路徑改為網路共享即可,例如 \\Server\Backup。

適合公司環境嗎?

適合,PowerShell 自動備份可降低人工操作錯誤並提升資料安全。

如何刪除或修改排程任務時間?

刪除排程:
schtasks /delete /tn "DailyBackup" /f
修改時間:
schtasks /change /tn "DailyBackup" /st 03:30
或者刪掉舊任務後重新建立新時間排程。

    PAGE TOP