PowerShell'de Bir Klasörün Boş Olup Olmadığı Nasıl Kontrol Edilir?
Dosya ve dizinlerle çalışırken bir klasörün boş olup olmadığını kontrol etme ihtiyacıyla karşılaşabilirsiniz. PowerShell bunu yapmanın farklı yollarını sunar. Bu PowerShell eğitiminde, PowerShell kullanarak boş bir dizini kontrol etmek için farklı yöntemleri inceleyeceğiz.
PowerShell'de bir klasörün boş olup olmadığını kontrol etmek için Get-ChildItem cmdlet'ini kullanabilir ve içerik sayısını doğrulayabilirsiniz. Örneğin:
$folderItems = Get-ChildItem -Path "C:\MyFolder"
$isFolderEmpty = $folderItems.Count -eq 0$isFolderEmpty $true ise, klasör boştur; aksi takdirde dosyalar veya alt dizinler içerir.
PowerShell'de Bir Klasörün Boş olup olmadığını kontrol edin
Burada size PowerShell kullanarak bir klasörün boş olup olmadığını kontrol etmek için 5 yöntem göstereceğim. Çalıştırdığım ve test ettiğim tüm komut dosyaları.
Yöntem 1: Get-ChildItem Cmdlet'ini Kullanma
Get-ChildItem cmdlet'i bir dizinin içeriğini listelemek için kullanılır. Klasör içindeki öğelerin sayısını kontrol ederek boş olup olmadığını belirleyebiliriz.
İşte PowerShell betiğinin tamamı.
$directoryPath = "C:\MyFolder"
$items = Get-ChildItem -Path $directoryPath
if ($items.Count -eq 0) {
Write-Host "'$directoryPath' directory is empty"
} else {
Write-Host "'$directoryPath' directory is not empty"
}Bu komut dosyası, kontrol etmek istediğiniz dizinin yolunu belirler ve ardından içeriği almak için Get-ChildItem'i kullanır. Öğe sayısı sıfırsa bu, dizinin boş olduğu anlamına gelir.
PowerShell betiğini VS kodunu kullanarak çalıştırdıktan sonra çıktıyı aşağıdaki ekran görüntüsünde görebilirsiniz.
Yöntem 2: Get-ChildItem'i Ek Denetimlerle Kullanma
Bazen, gizli dosyalar veya alt dizinler içerse bile bir dizinin boş olup olmadığını kontrol etmek isteyebilirsiniz.
Aşağıdaki PowerShell betiği ayrıca gizli dosyaları da kontrol edecektir.
$directoryPath = "C:\MyNewFolder"
$items = Get-ChildItem -Path $directoryPath -Recurse -Force
if ($items.Count -eq 0) {
Write-Host "'$directoryPath' directory is completely empty, including hidden files and subdirectories"
} else {
Write-Host "'$directoryPath' directory contains files or subdirectories"
}-Recurse bayrağı, komutun tüm alt dizinleri kontrol etmesini sağlarken, -Force da gizli dosyaları ve sistem dosyalarını sayıma dahil eder.
Yöntem 3: Measure-Object Cmdlet'ini Kullanma
PowerShell'de boş bir klasör olup olmadığını kontrol etmenin başka bir yolu da Measure-Object cmdlet'ini kullanmaktır. Bu cmdlet, bir dizindeki öğe sayısı da dahil olmak üzere nesnelerin çeşitli özelliklerini ölçer.
$directoryPath = "C:\MyFolder"
$isEmpty = (Get-ChildItem -Path $directoryPath | Measure-Object).Count -eq 0
if ($isEmpty) {
Write-Host "'$directoryPath' directory is empty"
} else {
Write-Host "'$directoryPath' directory is not empty"
}Bu komut dosyası, Get-ChildItem çıktısını, öğeleri sayan Measure-Object'e aktarır. Sayı sıfıra eşitse dizin boştur.
Yöntem 4: [System.IO.Directory] Sınıfını Kullanma
PowerShell içindeki .NET sınıflarını da kullanabilirsiniz; [System.IO.Directory] sınıfı, dosya sistemleriyle etkileşim kurmanın bir yolunu sağlar.
Aşağıda, .Net sınıfını kullanarak PowerShell'de bir dizinin boş olup olmadığını kontrol etmek için PowerShell betiğinin tamamı bulunmaktadır.
$directoryPath = "C:\MyFolder"
$directoryInfo = [System.IO.Directory]::GetFileSystemEntries($directoryPath)
if ($directoryInfo.Length -eq 0) {
Write-Host "'$directoryPath' directory is empty"
} else {
Write-Host "'$directoryPath' directory is not empty"
}Bu komut dosyası, belirtilen dizinin girişlerini almak için GetFileSystemEntries yöntemini kullanır. Dizinin uzunluğu sıfırsa dizin boştur.
Çözüm
Bir dizinin boş olup olmadığını kontrol etmek PowerShell'de çok yaygın bir gereksinimdir. Bu PowerShell'de, PowerShell'de bir klasörün boş olup olmadığını kontrol etmek için Get-ChildItem Cmdlet'ini ve Measure-Object Cmdlet'ini vb. kullanmak gibi farklı yöntemleri açıkladım.
