在 CMD 命令提示字元中執行 PowerShell 指令非常簡單,通常只需要在指令前加上 powershell 前綴。這在你寫批次檔(.bat)或只想在現有視窗快速跑一行腳本時很有用。
執行單行指令
如果你只想執行一個簡單的 PowerShell 指令,可以使用 -Command 參數(或縮寫為 -c)。
DOS
powershell -Command "Get-Process"
如果指令中有空格或需要引號,建議用單引號包起來,或者在 CMD 中使用雙引號並小心處理。例如查看當前時間:
DOS
powershell -Command "Get-Date"
執行腳本檔案
如果你已經寫好了一個 .ps1 檔案,可以用 -File 參數來啟動它。
DOS
powershell -ExecutionPolicy Bypass -File "C:\Scripts\MyScript.ps1"
這裡加上 -ExecutionPolicy Bypass 是為了避免 Windows 預設的安全性限制導致腳本無法跑起來。
進入互動模式
如果你想直接把當前的 CMD 視窗變成 PowerShell 環境,直接輸入指令:
DOS
powershell
你會發現左邊的提示字元多了 PS 字樣,這代表你已經切換成功。想回 CMD 時,輸入 exit 即可。
注意事項
- 指令長度:CMD 對指令長度有限制,如果你的 PowerShell 代碼太長,建議寫成檔案。
- 管理員權限:如果你的指令涉及系統修改,記得要以管理員身分開啟 CMD。
- 特殊符號:在 CMD 傳遞參數給 PowerShell 時,有些特殊符號(如 & 或 |)可能會被 CMD 先誤判,必要時要用引號完整包覆。
在 CMD 裡面要用一條字串執行多行 PowerShell 指令,最簡單的方法是使用分號將指令隔開。PowerShell 會把分號視為換行符號,依序執行每個動作。
使用分號連接指令
你可以把切換目錄和執行檔案寫在一起。在 PowerShell 語法中,切換目錄是 cd 或 Set-Location,執行批次檔或程式則建議加上路徑符號。
DOS
powershell -Command "cd 'C:\target\path'; .\your-script.bat"
如果路徑中有空格,記得用單引號把路徑包起來,避免 CMD 解析錯誤。
確保路徑正確執行
有時候直接寫檔名可能跑不動,建議在檔案名稱前面加上 .\ 代表目前目錄。如果你要執行的不是批次檔而是另一個 PowerShell 腳本,做法也一樣。
DOS
powershell -Command "cd 'D:\Work Space'; .\build.bat"
如果你希望執行完畢後不要立刻關閉視窗,可以改用 -NoExit 參數,這樣你就能看到執行結果。
DOS
powershell -NoExit -Command "cd 'C:\temp'; .\test.bat"
另一種邏輯連接符號
除了分號之外,你也可以使用 && 符號。這代表前面的指令成功執行後,才會跑後面的指令。這在確保「一定要進入資料夾才能執行」的情況下很實用。
DOS
powershell -Command "cd 'C:\target' -and .\start.bat"
不過在大多數簡單場景下,用分號(;)是最直覺且不容易出錯的做法。