Skip to content

ทำไมควรใช้ PowerShell แทน Command Prompt

Featurelearn.microsoft.com faviconPowerShelllearn.microsoft.com faviconCommand Prompt
ปีที่ออก20061985
Language✅ ใช้ .NET frameworkใช้คำสั่ง DOS เดิม
Output✅ Object-basedText-based
Pipelining✅ ส่ง object ระหว่างคำสั่งส่งแค่ text
Scripting✅ สคริปต์ที่ซับซ้อนได้จำกัด functionality
Remote Management✅ มี cmdlets พร้อมใช้งานต้องใช้ tools เพิ่มเติม
Module System✅ มีระบบ module ที่แข็งแกร่งไม่มี
Help SystemGet-Help ที่ละเอียดhelp ที่พื้นฐาน
Error Handling✅ มีระบบจัดการ error ที่ดีจำกัดและไม่ยืดหยุ่น
Cross-platform✅ ทำงานบน Windows/Linux/MacWindows เท่านั้น
Community✅ มีชุมชนขนาดใหญ่และเติบโตมีขนาดเล็กและลดลง
IDE Support✅ มี VSCode และ ISEไม่มี IDE เฉพาะ

Usage

ใช้ใน Windows Terminal

ใช้ใน Wezterm

~/.wezterm.lua
bash
-- config ของผม
local wezterm = require 'wezterm'
wezterm.on("gui-startup", function(cmd)
    local tab, pane, window = wezterm.mux.spawn_window(cmd or {})
    --- pane:split { direction = "Right" }
    window:gui_window():maximize()
end)
return {
    default_cwd = 'D:\\wrikka\\learn-wrikka-com',
    default_prog = {"pwsh"},
    font = wezterm.font("MesloLGL Nerd Font Mono"),
    font_size = 12.0,
    color_scheme = "Gruvbox Dark",
    hide_tab_bar_if_only_one_tab = true,
    default_cursor_style = "SteadyBar",
    enable_scroll_bar = true,
    keys = {
        {key = "t",mods = "CTRL",action = wezterm.action { SpawnTab = "CurrentPaneDomain" }},
        {key = "n",mods = "CTRL",action = wezterm.action { SplitHorizontal = { domain = "CurrentPaneDomain" } }},
        {key = "w",mods = "CTRL",action = wezterm.action { CloseCurrentTab = { confirm = false } }},
        {key = "v",mods = "CTRL",action = wezterm.action { PasteFrom = "Clipboard" }},
        {key = "c",mods = "CTRL|SHIFT",action = wezterm.action { CopyTo = "Clipboard" }},
        {key = "c",mods = "CTRL",action = wezterm.action_callback(function(window, pane)
            if window:get_selection_text_for_pane(pane) == "" then
                window:perform_action(wezterm.action { SendString = "\x03" }, pane)
            else
                window:perform_action(wezterm.action { CopyTo = "Clipboard" }, pane)
            end
        end)},
        {key = "f",mods = "CTRL",action = wezterm.action.Search { CaseInSensitiveString = "CurrentSelectionOrEmptyString" }},
        {key = "a",mods = "CTRL",action = wezterm.action { SendString = "\x01" }}
    }
}
ใช้ใน VS Code

เมื่อกำหนด   "terminal.integrated.defaultProfile.windows": "PowerShell" ใน settings.json => แล้วใน Terminal สามารถกดเลือก Shell ได้

Command

คำสั่ง PowerShell ที่สำคัญ

คำสั่งจัดการไฟล์และโฟลเดอร์

คำสั่งเต็มAliasตัวอย่างการใช้งานคำอธิบาย
Get-ChildItemlslsแสดงรายการไฟล์และโฟลเดอร์
New-Itemnini example.txtสร้างไฟล์ใหม่
mkdirmdmd MyFolderสร้างโฟลเดอร์ใหม่
Remove-Itemrmrm example.txtลบไฟล์
Copy-Itemcpcp file.txt dest/คัดลอกไฟล์
Move-Itemmvmv file.txt dest/ย้ายไฟล์
Rename-Itemrnirni old.txt new.txtเปลี่ยนชื่อไฟล์

คำสั่งระบบและการช่วยเหลือ

คำสั่งเต็มตัวอย่างการใช้งานคำอธิบาย
Get-CommandGet-Commandแสดงคำสั่ง PowerShell ทั้งหมด
Get-AliasGet-Aliasแสดงคำสั่งย่อที่ใช้บ่อย
Get-HelpGet-Help Get-Processแสดงวิธีใช้คำสั่งที่ระบุ

คำสั่งระบบปฏิบัติการ

คำสั่งเต็มตัวอย่างการใช้งานคำอธิบาย
Get-ProcessGet-Processแสดงกระบวนการที่กำลังทำงานอยู่
Get-ServiceGet-Serviceแสดงบริการ Windows ทั้งหมด
Get-ChildItem Env:Get-ChildItem Env:แสดงตัวแปรสภาพแวดล้อมทั้งหมด

คำสั่งเครือข่าย

คำสั่งเต็มตัวอย่างการใช้งานคำอธิบาย
Test-NetConnectionTest-NetConnection google.comตรวจสอบการเชื่อมต่อเครือข่าย
Get-NetIPConfigurationGet-NetIPConfigurationแสดงการตั้งค่า IP

คำสั่งระบบไฟล์

คำสั่งเต็มAliasตัวอย่างการใช้งานคำอธิบาย
Get-Contentgcgc file.txtอ่านเนื้อหาไฟล์
Set-Contentscsc file.txt "text"เขียนเนื้อหาไปยังไฟล์

คำสั่งจัดการกระบวนการ

คำสั่งเต็มตัวอย่างการใช้งานคำอธิบาย
Stop-ProcessStop-Process -Name notepadหยุดกระบวนการทำงาน
Start-ProcessStart-Process notepadเริ่มกระบวนการใหม่

Script

เราสามารถเขียน Script ต่างๆได้ => learn.microsoft.com faviconรายละเอียดเพิ่มเติม

~/Documents/PowerShell/Microsoft.PowerShell_profile.ps1
powershell
# ตัวอย่าง scripe

function Say-Hello {
    param($name)
    Write-Output "Hello, $name!"
}

Say-Hello "User"

Last updated: