PowerShell ile Bir Dosyanın Boş Olup Olmadığı Nasıl Kontrol Edilir?
PowerShell'de bir dosyanın boş olup olmadığını kontrol etmek mi istiyorsunuz? Bu PowerShell eğitiminde sizlere PowerShell ile bir dosyanın boş olup olmadığını kontrol etmek için farklı yöntemler göstereceğim.
PowerShell'de bir dosyanın boş olup olmadığını kontrol etmek için, Get-Item cmdlet'ini kullanarak, içeriğini yüklemeden dosyanın özelliklerini alabilirsiniz. Dosyanın Length özelliği sıfırsa dosya boştur. İşte kısa bir örnek:
if ((Get-Item 'C:\MyFolder\MyFile.txt').length -eq 0) {
"The file is empty."
} else {
"The file has content."
}Bu yöntem, dosyanın içeriğini belleğe okumadığından özellikle büyük dosyalar için hızlı ve etkilidir.
Get-Content Cmdlet'ini Kullanma
PowerShell'de bir dosyanın boş olup olmadığını kontrol etmenin en basit yollarından biri Get-Content cmdlet'ini kullanmaktır. Bu cmdlet bir dosyanın içeriğini okur ve uzunluğunu ölçmek için kullanılabilir. Uzunluk sıfırsa dosya boştur.
if ((Get-Content -Path C:\MyFolder\MyFile.txt).length -eq 0) {
Write-Host "The file is empty."
} else {
Write-Host "The file has content."
}Aşağıdaki ekran görüntüsünde PowerShell betiğini VS kodunu kullanarak çalıştırdığımı görebilirsiniz.
Get-Item Cmdlet'ini Kullanma
PowerShell'de boş bir dosyayı kontrol etmenin daha etkili bir yolu Get-Item cmdlet'ini kullanmaktır. Bu cmdlet, dosya içeriğini okumadan dosya uzunluğu gibi özellikleri içeren dosya nesnesini alır.
if ((Get-Item 'C:\MyFolder\MyFile.txt').length -eq 0) {
Write-Host "The file is empty."
} else {
Write-Host "The file has content."
}Bu yöntem, özellikle büyük dosyalar için daha hızlı ve daha kaynak dostudur. Dosyanın uzunluk özelliğini doğrudan dosya sistemi meta verisinden kontrol eder.
Aşağıdaki ekran görüntüsünde PowerShell betiğini çalıştırdığımı görebilirsiniz.
Test Yolu Cmdlet'ini Kullanma
Test-Path cmdlet'i genellikle bir dosyanın veya dizinin varlığını doğrulamak için kullanılsa da, bir dosyanın boş olup olmadığını doğrudan kontrol etmez.
if (Test-Path 'C:\MyFolder\MyFile.txt') {
# Additional checks for file content would be needed here
}[System.IO.FileInfo] Sınıfını Kullanma
PowerShell ayrıca dosya özelliklerini kontrol etmek için [System.IO.FileInfo] gibi .NET sınıflarına doğrudan erişebilir.
$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."
}Bu yöntem, .NET çerçevesinin dosya işleme yeteneklerini kullanır ve dosya özelliklerini denetlemenin sağlam bir yoludur.
[string]::IsNullOrWhiteSpace() Yöntemini Kullanma
Bir dosyanın boş olup olmadığını veya yalnızca boşluk içerip içermediğini kontrol etmenin başka bir yöntemi de PowerShell'deki [string]::IsNullOrWhiteSpace() yöntemini kullanmaktır. Yalnızca boşluk içeren bir dosyayı boş olarak değerlendirirseniz bu yöntem özellikle yararlı olabilir.
$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."
}Bu yöntem, dosya içeriğinin tamamını tek bir dize olarak okur ve bunun boş mu, boş mu yoksa yalnızca boşluk karakterlerinden mi oluştuğunu kontrol eder.
Çözüm
Umarım artık Get-Item, Get-Content cmdlet'i vb. gibi çeşitli yöntemleri kullanarak PowerShell kullanarak bir dosyanın boş olup olmadığını kontrol etme hakkında bir fikriniz vardır.

