PowerShell:
การอ่านอาร์กิวเมนต์จากคำสั่งลำดับ
วิธีการ
PowerShell อ่านอาร์กิวเมนต์บรรทัดคำสั่งโดยใช้อาร์เรย์ $args
หรือพารามิเตอร์ $args
เหมาะสำหรับสคริปต์ที่ใช้ครั้งเดียว; พารามิเตอร์ดีกว่าสำหรับเครื่องมือที่แข็งแกร่ง
การใช้ $args
# myscript.ps1
Write-Host "คุณได้ป้อนอาร์กิวเมนต์ต่อไปนี้:"
$args
เรียกใช้ด้วย .\myscript.ps1 Hello PowerShell
, แสดงผล:
คุณได้ป้อนอาร์กิวเมนต์ต่อไปนี้:
Hello PowerShell
การใช้พารามิเตอร์
# myscriptparam.ps1
param (
[string]$Name,
[int]$Age
)
Write-Host "สวัสดี, $Name! คุณอายุ $Age ปี."
เรียกใช้ด้วย .\myscriptparam.ps1 -Name Sarah -Age 32
, แสดงผล:
สวัสดี, Sarah! คุณอายุ 32 ปี.
ศึกษาเพิ่มเติม
วิธีการทันสมัยของ PowerShell ในการอ่านอาร์กิวเมนต์บรรทัดคำสั่งคล้ายกับสิ่งที่ได้รับมาจากบรรพบุรุษเช่น cmd และ Bash อย่างไรก็ตาม, มันขยายความยืดหยุ่นและความแม่นยำ
บริบททางประวัติศาสตร์
หลายปีก่อน, ไฟล์แบทช์และสคริปต์เชลล์เข้าถึงอาร์กิวเมนต์โดยใช้ตัวแปรที่มีตัวเลข (เช่น %1
, %2
) PowerShell ได้ปรับปรุงสิ่งนี้ด้วย $args
และพารามิเตอร์ที่มีชื่อเพื่อความชัดเจนและควบคุมมากขึ้น
ทางเลือก
มีทางเลือกอื่นๆ เช่นการแยกวิเคราะห์อินพุตดิบด้วย Read-Host
หรือการรับอินพุตที่ถูกส่งผ่านไป (piped input
) อย่างไรก็ตาม, $args
และพารามิเตอร์นั้นง่ายกว่ามากสำหรับงานอัตโนมัติและสคริปต์
รายละเอียดการใช้งาน
$args
เป็นอาร์เรย์ง่ายๆ ดีสำหรับอินพุตที่ไม่เจาะจง พารามิเตอร์ ด้วยคุณลักษณะและประเภทของมันสามารถตรวจสอบอินพุตและแม้กระทั่งส่งคำเชิญให้ผู้ใช้ ทำให้สคริปต์มีการเอกสารอย่างชัดเจนและลดโอกาสข้อผิดพลาดได้