จะตรวจสอบว่าไฟล์ว่างเปล่าด้วย 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 เป็นต้น

