⚡ 站長快讀:核心重點
- 文章屬性:教學實戰(入門)
- 適用系統:Windows 10 / 11 內建 Windows PowerShell 5.1,或跨平台 PowerShell 7
- 難易度 / 耗時:入門 / 約 15 分鐘
- 核心結論:10 個指令就能自動化日常檔案雜事,不用寫程式
- 適用對象:想少點滑鼠、多點效率的一般 Windows 使用者
📌 快速答案
一句話答案:PowerShell 入門不用寫程式,PowerShell 是 Windows 內建的命令列工具,只要記住 Get-ChildItem、Rename-Item、Get-FileHash 等 10 個常用指令,就能批次改檔名、搜尋檔案內容、驗證下載檔案完整性。
🧰 開始前的準備
- 系統需求:Windows 10 / 11 都內建「Windows PowerShell 5.1」,開機即可用;想用新版可另裝跨平台的 PowerShell 7(截至 2026 年 7 月查證,穩定版為 7.5、長期支援版 LTS 為 7.6)。
- 權限需求:本文 10 個指令多數是「唯讀查詢」或只動你自己的檔案,一般使用者權限即可;只有少數(關閉程式)建議看清楚再按。
- 怎麼打開:按「開始」輸入
PowerShell直接開;若你已經裝了 Windows Terminal,開一個 PowerShell 分頁操作起來更順手。 - 預計耗時:約 15 分鐘跟著打一輪。
🔍 為什麼你需要這個?
先講結論:滑鼠能做的事,PowerShell 幾乎都能做,而且「一次做一百個」。你有沒有遇過這些情境——手機匯出的照片全叫 IMG_0001,想一次改成「2026-旅遊-001」;下載了一個安裝檔,官網說要「比對 SHA256」但你不知道從何比對;某個設定檔忘記放哪個資料夾,只記得裡面有一行寫著某個關鍵字。這些用檔案總管一個一個點,慢又容易出錯。
PowerShell 是 Windows 內建的命令列工具,把「重複、大量、規則明確」的檔案雜事交給它,幾秒鐘就跑完。它跟老牌的「命令提示字元」(cmd)不一樣:PowerShell 處理的是「物件」而不是純文字,所以能像積木一樣用管線符號 | 把指令串起來。站上先前寫過一篇用 PowerShell 原生指令深度清理 Windows,那篇偏進階系統清理;這篇則是完全從零開始,挑 10 個非工程師也用得上的指令帶你上手。
💡 一個觀念先建立:PowerShell 指令長得像「動詞-名詞」,例如
Get-ChildItem(取得-子項目)、Rename-Item(重新命名-項目)。看到動詞大概就猜得到它在做什麼,這是它比 cmd 好記的地方。
🛠️ 實戰步驟:10 個非工程師也能用的指令
以下每個指令都附一句白話用途和一個實際範例。指令中的「參數」(- 開頭的字)可以先照抄,熟了再調整。建議先在測試資料夾練習,別一開始就對重要檔案動手。
指令 1:Get-Command / Get-Help —— 先學會「問路」
直接結論:不用背指令,學會問 PowerShell 自己就夠了。 這兩個是最該先學的「元指令」。忘記某個指令怎麼用,問它就對了。
# 找出名稱含 "item" 的所有指令
Get-Command *item*
# 看 Get-ChildItem 怎麼用,並列出實際範例
Get-Help Get-ChildItem -Examples第一次用 Get-Help 若提示要更新說明文件,依畫面指示執行 Update-Help 即可。光是 -Examples 這個參數,就能把官方範例直接叫出來照著改。
指令 2:Get-ChildItem —— 列檔案、揪出肥檔
直接結論:這就是「進階版的檔案總管清單」,還能排序、篩選、遞迴到子資料夾。 別名是 dir 和 ls,打哪個都行。
# 列出目前資料夾(含子資料夾)所有 .mp4,依大小由大到小排
Get-ChildItem -Recurse -Filter *.mp4 | Sort-Object Length -Descending-Recurse 代表「連同子資料夾一起找」,-Filter 負責篩副檔名。想快速找出「到底哪些大檔吃掉硬碟」,這一行就夠。
指令 3:Get-Content —— 不開軟體偷看文字檔
直接結論:想快速看 log、txt、設定檔的內容,不用滑鼠雙擊等它慢慢開。
# 只看某個 log 檔的最後 20 行(看最新狀況最實用)
Get-Content .\app.log -Tail 20-Tail 20 看最後 20 行,-TotalCount 20 則是看前 20 行。檔案很大時,這比用記事本開快得多。
指令 4:Select-String —— 在一堆檔案裡「搜字」
直接結論:這是 Windows 版的 grep,幫你在檔案內容裡找關鍵字,不是找檔名。 別名 sls。
# 在目前資料夾所有 .txt 裡,找出含 "error" 的行
Select-String -Path .\*.txt -Pattern "error"依官方文件,-Pattern 預設用正規表示式比對;想單純比對純文字可加 -SimpleMatch。搭配 Get-ChildItem -Recurse 用管線送進來,還能一次搜遍所有子資料夾。找「那行設定到底寫在哪個檔」時超好用。
指令 5:Copy-Item / Move-Item —— 批次複製、搬移
直接結論:一次搬一整批符合條件的檔案,比拖曳穩,也不怕手滑。
# 把所有 .jpg 複製到「備份」資料夾
Copy-Item -Path .\*.jpg -Destination .\備份\
# 搬移整個資料夾(含底下所有內容)
Move-Item -Path .\舊專案 -Destination D:\封存\複製整個資料夾樹狀結構時,Copy-Item 記得加 -Recurse。提醒:Move-Item 是真的搬走,動手前先確認目的地正確。
指令 6:Rename-Item —— 批次改檔名(新手最有感)
直接結論:配合管線,一行就能把一整批檔名依規則改掉。 這是本文最實用的一招。
# 把目前資料夾所有 .txt 副檔名改成 .log
Get-ChildItem *.txt | Rename-Item -NewName { $_.Name -replace '\.txt$', '.log' }這行的邏輯是:Get-ChildItem 先抓出所有 .txt,用管線 | 一個一個送給 Rename-Item;大括號裡的 $_ 代表「當下這個檔案」,-replace 負責把檔名裡的 .txt 換成 .log。
💡 站長提醒:
-replace用的是正規表示式,所以句點要寫成\.才代表「真正的點」,結尾的$代表「只換副檔名、不誤傷檔名中間的字」。官方文件範例雖然直接寫'.txt','.log',但加上跳脫更保險。改名前先把指令尾巴加-WhatIf,可以先預覽會怎麼改、不會真的動到檔案。另外Rename-Item只能改名、不能同時搬移,也不能覆蓋同名檔。
指令 7:Compress-Archive / Expand-Archive —— 免裝軟體壓縮解壓
直接結論:不用另外裝壓縮軟體,PowerShell 內建就能打包 .zip。
# 把「報告」資料夾壓成 report.zip
Compress-Archive -Path .\報告\* -DestinationPath .\report.zip
# 解壓縮到指定資料夾
Expand-Archive -Path .\report.zip -DestinationPath .\解壓\依官方文件,壓縮預設用 Optimal 壓縮等級,趕時間可改 -CompressionLevel Fastest。有兩個雷要記得:它會略過隱藏檔,而且單一 zip 上限約 2GB(用的是 .NET 的 ZipArchive)。要覆蓋已存在的 zip 加 -Force。
指令 8:Get-FileHash —— 驗證下載檔案有沒有被動過
直接結論:官網給的 SHA256 跟你算出來的一致,才代表檔案完整、沒被竄改。 這是資安基本功。
# 算某個安裝檔的 SHA256(預設就是 SHA256)
Get-FileHash .\setup.exe依官方文件,Get-FileHash 預設演算法就是 SHA256,把算出來的 Hash 跟官網公布的字串比對即可(不分大小寫)。要指定其他演算法可加 -Algorithm SHA512。官方也明說 MD5、SHA1 已不夠安全,只適合單純檢查有沒有傳輸損毀,別拿來當防竄改依據。
指令 9:Measure-Object —— 算數量、加總大小
直接結論:想知道「這資料夾到底幾個檔、總共多大」,一行算給你。
# 算目前資料夾所有檔案的數量與總大小(MB)
Get-ChildItem -File | Measure-Object -Property Length -Sum輸出的 Count 是檔案數、Sum 是總位元組數。想直接看 MB,可用官方文件示範的計算屬性寫法:Get-ChildItem | Measure-Object -Sum { $_.Length / 1MB }。別名是 measure。
指令 10:Get-Process / Stop-Process —— 看程式、關掉當掉的 App
直接結論:比工作管理員更快查到某個程式、必要時強制關閉。
# 查所有名稱含 "chrome" 的程序
Get-Process -Name *chrome*
# 強制關閉某個沒回應的程式(請先確認名稱)
Stop-Process -Name notepad⚠️ 這一個要小心:
Stop-Process是「強制關閉」,等於直接砍掉,沒存的東西會不見。動手前務必先用Get-Process確認你要關的是哪一個,別關到系統程序。同樣可以先加-WhatIf預覽。
🔬 PowerShell 跟命令提示字元(cmd)差在哪?
一句話:cmd 傳的是「文字」,PowerShell 傳的是「物件」,所以 PowerShell 能串、能篩、能排序。
在 cmd 裡,一個指令吐出來的是一堆純文字,你想再加工就得自己剪字串。PowerShell 不一樣:Get-ChildItem 吐出來的每個檔案都是一個帶屬性的「物件」(有名稱、大小、修改時間等),所以你可以直接 Sort-Object Length 依大小排、用 Where-Object 篩條件,再用管線 | 一路串下去。這也是為什麼上面很多範例都能「一行解決」。
對非工程師來說不用鑽這麼深,只要記住一個心法:先用 Get- 開頭的指令把東西抓出來,再用管線 | 接下一步,大部分日常自動化就是這樣組出來的。
🛟 安全習慣:先 -WhatIf 再動手
新手最該養成的習慣,就是「先預覽、再執行」。 很多會改動檔案的指令(Rename-Item、Move-Item、Remove-Item、Stop-Process 等)都支援 -WhatIf 參數:加上去之後,PowerShell 只會告訴你「如果執行,會發生什麼」,但不會真的動手。
# 先預覽:這行只會列出「將會改哪些檔」,不會真的改
Get-ChildItem *.txt | Rename-Item -NewName { $_.Name -replace '\.txt$', '.log' } -WhatIf確認結果沒問題,再把 -WhatIf 拿掉正式跑。另外提醒兩點:一是本文沒有特別介紹刪檔的 Remove-Item,因為對新手來說誤刪風險高,真要用也請先 -WhatIf;二是如果你想把指令存成 .ps1 腳本檔重複執行,Windows 用戶端預設的「執行原則」可能會擋下未簽章的腳本,詳細設定與風險請以微軟官方文件為準,不確定就先別改。
💡 總結:站長的入門建議
站長我帶新手時,最常講一句話:別想著背指令,先背「動詞-名詞」的規則跟管線 | 的心法。你只要記得「Get 拿資料、Set 改設定、New 建東西、Remove 刪東西」,看到沒學過的指令也能猜個八九不離十;剩下的細節,Get-Help <指令> -Examples 隨時查得到。
版本上補充一個查證後的事實錨點:截至 2026 年 7 月,PowerShell 穩定版是 7.5、長期支援版(LTS)是 7.6,而 Windows 10 / 11 本身內建的是 Windows PowerShell 5.1——這兩者可以並存,本文這 10 個指令在兩邊都能用。本文所有指令的行為以微軟官方文件為準,站長沒有在正式 Windows 環境逐一實測數字,請以你自己機器上的實際結果為準。真的想更進一步做自動化,可以接著看站上的 Python 自動化第一課:批次改檔名、整理資料夾,兩套工具各有擅長。
❓ 常見問題
Q:PowerShell 入門要怎麼學最快?
先別買書、別追教學影片馬拉松。開一個測試資料夾,把本文 10 個指令各打一次,遇到不懂就 Get-Help <指令> -Examples。動手打過一輪,比看十支影片有用。
Q:PowerShell 和命令提示字元(cmd)差在哪?該學哪個?
cmd 傳純文字、PowerShell 傳物件,能串接、能篩選排序,功能強很多,現在也是 Windows 主推的工具。新手直接學 PowerShell 即可,cmd 的老指令(如 dir、cd)PowerShell 大多也認得。
Q:這些指令會不會不小心把電腦搞壞?
本文挑的 10 個指令多為唯讀查詢或只動你指定的檔案,風險低。真正要小心的是 Stop-Process(強制關程式)和沒介紹的 Remove-Item(刪檔)。養成先加 -WhatIf 預覽的習慣就很安全。
Q:非工程師真的需要學 PowerShell 嗎?
如果你常做「大量、重複、有規則」的檔案雜事——批次改名、整理照片、找檔案內容、驗證下載——那學這 10 個指令的投報率很高。純文書使用者可以先收藏,遇到需求再回來查。
🔗 延伸閱讀
- Everything 檔案搜尋神器完整教學:Windows 秒搜檔案,語法、安裝一次學會
- Windows 生產力神器 PowerToys:微軟官方免費,這 9 個功能一裝就回不去
- SSD 放著不開機資料會消失?2026 最新 NAND 壽命保存指南(附 PowerShell 巡檢腳本)
- 你的 SSD 壽命正在被吃掉?打造「不死資料」的 robocopy 備份鐵律
📎 參考資料來源
📖 第一級|廠商官方(Microsoft Learn):
- Rename-Item 官方文件 — 2026-07-04 查證
- Get-FileHash 官方文件 — 2026-07-04 查證
- Compress-Archive 官方文件 — 2026-07-04 查證
- Select-String 官方文件 — 2026-07-04 查證
- Measure-Object 官方文件 — 2026-07-04 查證
- 在 Windows 安裝 PowerShell / 支援週期 — 2026-07-04 查證(版本 7.5 / 7.6 LTS)
⚠️ 本文核心事實以第一級官方文件為準;指令行為皆引自微軟官方文件,非站長第一手實測。
📅 本文查證戳記:2026-07-04 依微軟官方文件撰寫,環境涵蓋 Windows PowerShell 5.1 與 PowerShell 7.x。若你在後續版本遇到指令失效,歡迎在留言區回報。