PowerShell ile Klasör Listeleme

Verileri sınıflandırırken dosyaları sistematik ve standart bir klasör yapısında depolamak oldukça kullanışlı ve avantajlıdır. Powershell uygulaması ile bir klasörü alt klasörleriyle listesini alabilir ve profesyonel veya kişisel notlarımız için bu listeyi kullanabiliriz. PowerShell ile bir klasörün yalnızca alt klasör dizinlerini göstermek için en yaygın ve kullanışlı yöntemlerden bazıları:

Get-ChildItem Kullanarak

Get-ChildItem cmdlet’i, bir dizindeki öğeleri (dosyalar ve klasörler) listelemek için kullanılır. Yalnızca klasörleri filtrelemek için -Directory parametresini ekleyebilirsiniz.

Örnek:

Get-ChildItem -Path "C:\Your\FolderPath" -Directory

Bu komutu kullandığınızda, "C:\Your\FolderPath" kısmını listelemek istediğiniz klasörün gerçek yoluyla değiştirmeniz yeterlidir.

Alt Klasörleri Tek Bir Seviye Derinliğe Kadar Listeleme

Eğer sadece ilk seviye alt klasörleri görmek istiyorsanız yukarıdaki komut yeterlidir. Ancak, belirli bir derinliğe kadar tüm alt klasörleri (iç içe geçmişler dahil) listelemek isterseniz -Recurse parametresini kullanabilir ve daha sonra sadece dizinleri filtreleyebilirsiniz:

Örnek:

Get-ChildItem -Path "C:\Your\FolderPath" -Recurse | Where-Object {$_.PSIsContainer -eq $true}

Bu komut, belirtilen yol altındaki tüm alt klasörleri listeler. Eğer belirli bir derinlikte durmak isterseniz, bu komutu bir döngü ile veya daha karmaşık bir mantıkla birleştirmelisiniz. Ancak, çoğu senaryoda -Recurse veya yalnızca -Directory kullanımı yeterli olacaktır.

Yalnızca Klasör İsimlerini Alma

Eğer sadece alt klasörlerin isimlerini görmek isterseniz, Select-Object kullanarak Name özelliğini seçebilirsiniz:

Örnek:

(Get-ChildItem -Path "C:\Your\FolderPath" -Directory).Name

Bu, size belirtilen yoldaki tüm alt klasörlerin sadece isimlerini listeleyecektir.

Klasör isimlerini ağaç formunda listelemek için:

PowerShell’de klasörleri ağaç yapısında görmek için tree komutunu kullanabiliriz. Ancak tree komutu doğrudan PowerShell’in bir cmdlet’i değildir; Windows komut istemcisinde (cmd.exe) bulunan bir komuttur. Linux işletim sistemindeki uygulamaya benzer şekilde çalışır.

tree Komutunu PowerShell’den Çalıştırma

cmd.exe‘nin tree komutunu PowerShell içinden çalıştırmanın en kolay yolu cmd /c kullanmaktır. cmd /c ifadesi, belirtilen komutun çalıştırıldıktan sonra komut istemcisinin kapatılmasını sağlar.

Örnek Kullanım:

cmd /c tree C:\Your\FolderPath

Yukarıdaki komutta, C:\Your\FolderPath kısmını ağaç yapısında görmek istediğiniz klasörün yolu ile değiştirmeniz yeterlidir.

tree Komutunun Bazı Kullanışlı Parametreleri:

/F: Her klasördeki dosyaların isimlerini de gösterir. Sadece klasörleri görmek istemiyorsanız bu parametreyi kullanmayın.

cmd /c tree C:\Your\FolderPath /F

/A: Grafik karakterleri yerine ASCII karakterlerini kullanarak ağaç yapısını çizer. Bazı konsol ortamlarında daha iyi görünebilir.

cmd /c tree C:\Your\FolderPath /A
cmd /c tree C:\Your\FolderPath /A

PowerShell ile Daha Fazla Kontrol (Gelişmiş)

Eğer tree komutunun sunduğundan daha fazla esneklik veya filtreleme isterseniz, PowerShell’in kendi Get-ChildItem cmdlet’ini kullanarak da benzer bir ağaç yapısı oluşturabilirsiniz. Bu genellikle daha fazla kod yazmayı gerektirir ancak çıktı üzerinde tam kontrol sağlar.

Örnek (Sadece klasörler için basit bir ağaç gösterimi):

function Get-FolderTree {
param(
[string]$Path,
[int]$Depth = 0
)
$indent = " " * $Depth
Get-ChildItem -Path $Path -Directory | ForEach-Object {
Write-Host "$indent|-- $($_.Name)"
Get-FolderTree -Path $_.FullName -Depth ($Depth + 1)
}
}
# Kullanımı:
Get-FolderTree -Path "C:\Your\FolderPath"

Bu fonksiyon, belirtilen klasör altındaki tüm alt klasörleri özyinelemeli olarak bulur ve girintili bir şekilde yazdırır, böylece bir ağaç yapısı görünümü elde edersiniz. Bu yöntem, tree komutundan daha fazla özelleştirme imkanı sunar (örneğin, belirli türdeki klasörleri dahil etme/hariç tutma).

Hangi yöntemin ihtiyaçlarınıza daha uygun olduğunu düşünüyorsunuz? cmd /c tree basit ve hızlı bir çözümken, PowerShell fonksiyonu daha fazla esneklik sunar.