PowerShell: Dizindeki Klasör Adlarını Bir Diziye Kaydetme


Genellikle belirli bir dizindeki tüm klasörlerin adlarını PowerShell'deki bir diziye kaydetmek isteyebilirsiniz.

Bunu yapmak için aşağıdaki sözdizimini kullanabilirsiniz:

$arr = Get-ChildItem c:\some\path -Directory | ForEach-Object {$_.Name}

Bu özel örnek, belirttiğimiz dizindeki tüm klasör adlarını $arr adlı bir diziye kaydeder.

Çeşitli komutların yaptığı şey:

  • Get-ChildItem: Belirli bir yoldan tüm öğeleri alır
  • -Dizin: Yalnızca klasörleri almak istediğimizi belirtir
  • ForEach-Object {$_.Name: Yalnızca klasörün adını döndürür

Aşağıdaki örnek, bu sözdiziminin pratikte nasıl kullanılacağını gösterir.

Örnek: PowerShell Klasör Adlarını Kaydetme

Aşağıdaki konumdaki tüm klasörleri bir diziye kaydetmek istediğimizi varsayalım:

c:\users\bobbi\dat

Bu dizindeki tüm dosya ve klasörleri görüntülemek için öncelikle Get-ChildItem cmdlet'ini kullanabiliriz:

Bu dizinin üç klasör içerdiğini görebiliriz:

  • sporcular
  • antrenörler
  • yöneticiler

Ayrıca üç dosya içerir:

  • teams1.txt
  • teams2.txt
  • teams3.txt

Bir diziye yalnızca klasör adlarını kaydetmek istediğimizi varsayalım.

Bunu yapmak için aşağıdaki sözdizimini kullanabiliriz:

$arr = Get-ChildItem c:\users\bobbi\dat -Directory | ForEach-Object {$_.Name} 

Aşağıdaki ekran görüntüsü bu sözdiziminin pratikte nasıl kullanılacağını göstermektedir:

$arr değerlerinin çıktısını aldığımızda, bunun yalnızca belirttiğimiz dizindeki klasörlerin adlarını içerdiğini görebildiğimize dikkat edin.

Diziden belirli klasörleri almak için köşeli ayraç gösterimini de kullanabiliriz.

Örneğin dizideki ilk klasörün adını almak için aşağıdaki sözdizimini kullanabiliriz:

$arr[0]

Aşağıdaki ekran görüntüsü bu sözdiziminin pratikte nasıl kullanılacağını göstermektedir:

Bunun, dizideki ilk klasörün adı olan sporcular'ı döndürdüğüne dikkat edin.

Not: PowerShell'deki ForEach-Object cmdlet'inin tüm belgelerini burada bulabilirsiniz.

İlgili makaleler