Dark mode
ทำไมควรใช้ PowerShell แทน Command Prompt
Feature | ||
---|---|---|
ปีที่ออก | 2006 | 1985 |
Language | ✅ ใช้ .NET framework | ใช้คำสั่ง DOS เดิม |
Output | ✅ Object-based | Text-based |
Pipelining | ✅ ส่ง object ระหว่างคำสั่ง | ส่งแค่ text |
Scripting | ✅ สคริปต์ที่ซับซ้อนได้ | จำกัด functionality |
Remote Management | ✅ มี cmdlets พร้อมใช้งาน | ต้องใช้ tools เพิ่มเติม |
Module System | ✅ มีระบบ module ที่แข็งแกร่ง | ไม่มี |
Help System | ✅ Get-Help ที่ละเอียด | help ที่พื้นฐาน |
Error Handling | ✅ มีระบบจัดการ error ที่ดี | จำกัดและไม่ยืดหยุ่น |
Cross-platform | ✅ ทำงานบน Windows/Linux/Mac | Windows เท่านั้น |
Community | ✅ มีชุมชนขนาดใหญ่และเติบโต | มีขนาดเล็กและลดลง |
IDE Support | ✅ มี VSCode และ ISE | ไม่มี IDE เฉพาะ |
Usage
ใช้ใน Windows Terminal
ใช้ใน Wezterm
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-ChildItem | ls | ls | แสดงรายการไฟล์และโฟลเดอร์ |
New-Item | ni | ni example.txt | สร้างไฟล์ใหม่ |
mkdir | md | md MyFolder | สร้างโฟลเดอร์ใหม่ |
Remove-Item | rm | rm example.txt | ลบไฟล์ |
Copy-Item | cp | cp file.txt dest/ | คัดลอกไฟล์ |
Move-Item | mv | mv file.txt dest/ | ย้ายไฟล์ |
Rename-Item | rni | rni old.txt new.txt | เปลี่ยนชื่อไฟล์ |
คำสั่งระบบและการช่วยเหลือ
คำสั่งเต็ม | ตัวอย่างการใช้งาน | คำอธิบาย |
---|---|---|
Get-Command | Get-Command | แสดงคำสั่ง PowerShell ทั้งหมด |
Get-Alias | Get-Alias | แสดงคำสั่งย่อที่ใช้บ่อย |
Get-Help | Get-Help Get-Process | แสดงวิธีใช้คำสั่งที่ระบุ |
คำสั่งระบบปฏิบัติการ
คำสั่งเต็ม | ตัวอย่างการใช้งาน | คำอธิบาย |
---|---|---|
Get-Process | Get-Process | แสดงกระบวนการที่กำลังทำงานอยู่ |
Get-Service | Get-Service | แสดงบริการ Windows ทั้งหมด |
Get-ChildItem Env: | Get-ChildItem Env: | แสดงตัวแปรสภาพแวดล้อมทั้งหมด |
คำสั่งเครือข่าย
คำสั่งเต็ม | ตัวอย่างการใช้งาน | คำอธิบาย |
---|---|---|
Test-NetConnection | Test-NetConnection google.com | ตรวจสอบการเชื่อมต่อเครือข่าย |
Get-NetIPConfiguration | Get-NetIPConfiguration | แสดงการตั้งค่า IP |
คำสั่งระบบไฟล์
คำสั่งเต็ม | Alias | ตัวอย่างการใช้งาน | คำอธิบาย |
---|---|---|---|
Get-Content | gc | gc file.txt | อ่านเนื้อหาไฟล์ |
Set-Content | sc | sc file.txt "text" | เขียนเนื้อหาไปยังไฟล์ |
คำสั่งจัดการกระบวนการ
คำสั่งเต็ม | ตัวอย่างการใช้งาน | คำอธิบาย |
---|---|---|
Stop-Process | Stop-Process -Name notepad | หยุดกระบวนการทำงาน |
Start-Process | Start-Process notepad | เริ่มกระบวนการใหม่ |
Script
เราสามารถเขียน Script ต่างๆได้ =>
รายละเอียดเพิ่มเติม
powershell
# ตัวอย่าง scripe
function Say-Hello {
param($name)
Write-Output "Hello, $name!"
}
Say-Hello "User"