PowerShell:
การอ่านไฟล์ข้อความ
วิธีการ
เริ่มกันที่พื้นฐาน! นี่คือวิธีที่คุณอ่านจากไฟล์ข้อความใน PowerShell:
# ดึงเนื้อหาของไฟล์
$content = Get-Content -Path "C:\path\to\your\file.txt"
# แสดงเนื้อหาในคอนโซล
Write-Output $content
ผลลัพธ์ตัวอย่างอาจดูเช่นนี้หากไฟล์ของคุณมีข้อความสองบรรทัด:
สวัสดี, PowerShell!
จบไฟล์
ตอนนี้, ต้องการอ่านทีละบรรทัดหรือไม่?
# อ่านไฟล์ทีละบรรทัด
$lines = Get-Content -Path "C:\path\to\your\file.txt" -ReadCount 0
foreach ($line in $lines) {
Write-Output $line
}
ผลลัพธ์ตัวอย่างเหมือนกับข้างบน, แต่ประมวลผลทีละบรรทัด
การศึกษาลึก
ก่อนมี PowerShell, เครื่องมือบรรทัดคำสั่งเช่น cat
ในระบบที่คล้าย UNIX หรือ type
ใน DOS เป็นวิธีการที่นิยมสำหรับการอ่านไฟล์ PowerShell ของ Get-Content เป็นเครื่องมือที่คมชัดสำหรับสิ่งนี้ในปัจจุบัน พร้อมด้วยข้อได้เปรียบเพิ่มเติมเช่นการอ่านทีละบรรทัด ซึ่งช่วยในการหลีกเลี่ยงการใช้หน่วยความจำมากเกินไปกับไฟล์ขนาดใหญ่
นอกจาก Get-Content
, เรายังมีคลาส .NET
ที่เราสามารถใช้เพื่อควบคุมมากขึ้น - ป้อน System.IO.StreamReader
:
$stream = [System.IO.StreamReader] "C:\path\to\your\file.txt"
try {
while ($line = $stream.ReadLine()) {
Write-Output $line
}
}
finally {
$stream.Close()
}
นี่เป็นวิธีที่ใช้หน่วยความจำน้อยกว่า มีประโยชน์สำหรับข้อความขนาดใหญ่มหาศาล
มีทางเลือกอื่นหรือไม่? คุณอาจใช้ Import-Csv
สำหรับไฟล์ CSV หรือ ConvertFrom-Json
สำหรับ JSON หากคุณต้องการดึงข้อมูลเข้าไปในวัตถุที่มีโครงสร้าง แต่ยึดติดกับ Get-Content
สำหรับเรื่องข้อความดิบๆ
ดูเพิ่มเติม
เยี่ยมชมเอกสารอย่างเป็นทางการเพื่อค้นหาสมบัติเพิ่มเติม:
- เอกสาร Get-Content
- เกี่ยวกับตัวแปรอัตโนมัติ - นี่ให้ข้อมูลเชิงลึกเกี่ยวกับตัวแปรเช่น
$_
, ซึ่งอาจมีประโยชน์สำหรับการประมวลผลแบบอินไลน์ - การใช้ความสามารถ .NET ของ PowerShell - สำหรับผู้ที่ดำน้ำลึกลงไปในกรอบการทำงาน .NET ภายใน PowerShell