ค้นหาเว็บไซต์

จะตรวจสอบว่าไฟล์ว่างเปล่าด้วย PowerShell ได้อย่างไร


คุณต้องการตรวจสอบว่าไฟล์ว่างเปล่าหรือไม่อยู่ใน PowerShell หรือไม่? ในบทช่วยสอน PowerShell นี้ ฉันจะแสดงวิธีการต่างๆ เพื่อตรวจสอบว่าไฟล์ว่างเปล่าด้วย PowerShell หรือไม่

หากต้องการตรวจสอบว่าไฟล์ว่างเปล่าใน PowerShell หรือไม่ คุณสามารถใช้ Get-Item cmdlet เพื่อดึงคุณสมบัติของไฟล์โดยไม่ต้องโหลดเนื้อหา หากคุณสมบัติ Length ของไฟล์เป็น 0 แสดงว่าไฟล์นั้นว่างเปล่า นี่เป็นตัวอย่างโดยย่อ:

if ((Get-Item 'C:\MyFolder\MyFile.txt').length -eq 0) {
    "The file is empty."
} else {
    "The file has content."
}

วิธีนี้รวดเร็วและมีประสิทธิภาพ โดยเฉพาะกับไฟล์ขนาดใหญ่ เนื่องจากไม่ได้อ่านเนื้อหาของไฟล์ลงในหน่วยความจำ

การใช้ Get-Content Cmdlet

หนึ่งในวิธีที่ง่ายที่สุดในการตรวจสอบว่าไฟล์ว่างเปล่าใน PowerShell หรือไม่คือการใช้ cmdlet Get-Content cmdlet นี้อ่านเนื้อหาของไฟล์และสามารถใช้เพื่อวัดความยาวของไฟล์ได้ หากความยาวเป็นศูนย์ แสดงว่าไฟล์ว่างเปล่า

if ((Get-Content -Path C:\MyFolder\MyFile.txt).length -eq 0) {
    Write-Host "The file is empty."
} else {
    Write-Host "The file has content."
}

คุณสามารถดูได้ในภาพหน้าจอด้านล่างว่าฉันเรียกใช้งานสคริปต์ PowerShell โดยใช้โค้ด VS

การใช้ Get-Item Cmdlet

วิธีที่มีประสิทธิภาพมากขึ้นในการตรวจสอบไฟล์ว่างใน PowerShell คือการใช้ cmdlet Get-Item cmdlet นี้ดึงวัตถุไฟล์ ซึ่งรวมถึงคุณสมบัติ เช่น ความยาวไฟล์ โดยไม่ต้องอ่านเนื้อหาไฟล์

if ((Get-Item 'C:\MyFolder\MyFile.txt').length -eq 0) {
    Write-Host "The file is empty."
} else {
    Write-Host "The file has content."
}

วิธีนี้เร็วกว่าและเป็นมิตรต่อทรัพยากรมากกว่า โดยเฉพาะกับไฟล์ขนาดใหญ่ จะตรวจสอบคุณสมบัติความยาวของไฟล์โดยตรงจากข้อมูลเมตาของระบบไฟล์

คุณสามารถเห็นในภาพหน้าจอด้านล่างที่ฉันเรียกใช้งานสคริปต์ PowerShell

การใช้ Test-Path Cmdlet

แม้ว่าโดยทั่วไปจะใช้ Test-Path cmdlet เพื่อตรวจสอบการมีอยู่ของไฟล์หรือไดเร็กทอรี แต่ก็ไม่ได้ตรวจสอบโดยตรงว่าไฟล์ว่างเปล่าหรือไม่

if (Test-Path 'C:\MyFolder\MyFile.txt') {
    # Additional checks for file content would be needed here
}

การใช้คลาส [System.IO.FileInfo]

PowerShell ยังสามารถเข้าถึงคลาส .NET ได้โดยตรง เช่น [System.IO.FileInfo] เพื่อตรวจสอบคุณสมบัติของไฟล์

$fileInfo = New-Object System.IO.FileInfo 'C:\MyFolder\MyFile.txt'
if ($fileInfo.Length -eq 0) {
    Write-Host "The file is empty."
} else {
    Write-Host "The file has content."
}

วิธีการนี้ใช้ความสามารถในการจัดการไฟล์ของเฟรมเวิร์ก .NET และเป็นวิธีที่มีประสิทธิภาพในการตรวจสอบคุณสมบัติของไฟล์

ใช้เมธอด [string]::IsNullOrWhiteSpace()

อีกวิธีในการตรวจสอบว่าไฟล์ว่างเปล่าหรือมีเพียงช่องว่างคือการใช้วิธี [string]::IsNullOrWhiteSpace() ใน PowerShell วิธีนี้จะมีประโยชน์อย่างยิ่งหากคุณพิจารณาว่าไฟล์ที่มีช่องว่างเพียงอย่างเดียวนั้นว่างเปล่า

$content = Get-Content 'C:\MyFolder\MyFile.txt' -Raw
if ([string]::IsNullOrWhiteSpace($content)) {
    Write-Host "The file is empty or contains only whitespace."
} else {
    Write-Host "The file has content."
}

เมธอดนี้จะอ่านเนื้อหาไฟล์ทั้งหมดเป็นสตริงเดียว และตรวจสอบว่าเป็นค่าว่าง ว่างเปล่า หรือประกอบด้วยอักขระช่องว่างเพียงอย่างเดียว

บทสรุป

ฉันหวังว่าตอนนี้คุณคงจะพอเข้าใจวิธีตรวจสอบว่าไฟล์ว่างเปล่าหรือไม่โดยใช้ PowerShell โดยใช้วิธีการต่างๆ เช่น Get-Item, Get-Content cmdlet เป็นต้น

บทความที่เกี่ยวข้อง