การอ่านไฟล์ข้อความ

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 สำหรับเรื่องข้อความดิบๆ

ดูเพิ่มเติม

เยี่ยมชมเอกสารอย่างเป็นทางการเพื่อค้นหาสมบัติเพิ่มเติม: