Dosya Adlarını Yalnızca PowerShell'de Nasıl Listeleyebilirim?


PowerShell'de çılgınca şeyler yapabilirsiniz; bunlardan biri yalnızca dosya adlarını almaktır. Bu makalede size dosya adlarının yalnızca PowerShell'de nasıl listeleneceğini göstereceğim.

Dosya adlarını yalnızca PowerShell'de listelemek için Get-ChildItem cmdlet'ini -Name parametresiyle birlikte kullanabilirsiniz. Örneğin, Get-ChildItem -Path “C:\Your\Directory” -Name, belirtilen dizindeki tüm dosya adlarının çıktısını verir. Dizinleri hariç tutmak ve yalnızca dosyaları listelemek için -File parametresini şu şekilde ekleyin: Get-ChildItem -Path “C:\Your\Directory” -File -Name.

Get-ChildItem Cmdlet'ini Kullanarak Yalnızca Dosya Adlarını Alma

En basit yaklaşımı deneyelim.

PowerShell'de dosyaları listelemeye yönelik birincil komut Get-ChildItem'dir. Bu cmdlet, belirtilen bir veya daha fazla konumdaki öğeleri ve alt öğeleri alır. Yalnızca dosya adlarını listelemek için bu cmdlet'i en basit haliyle kullanabilirsiniz.

Get-ChildItem -Path "C:\MyFolder" -Name

-Path parametresi dizini belirtir ve -Name parametresi boyut, tür veya değiştirilme tarihi gibi diğer ayrıntılar hariç yalnızca dosya adlarının görüntülenmesini sağlar.

Aşağıdaki ekran görüntüsünde betiği VS kodunu kullanarak çalıştırdığımı görebilirsiniz.

Dizinleri Filtrele

Varsayılan olarak Get-ChildItem, PowerShell'deki hem dosyaları hem de dizinleri listeler. Yalnızca dosyaları listelemek istiyorsanız -File parametresini kullanarak dizinleri filtreleyebilirsiniz.

Get-ChildItem -Path "C:\MyFolder" -File -Name

Bu komut, uzantıları olmayan dosya adlarının bir listesini döndürür ve yalnızca klasör adlarını yok sayar.

Dosya Uzantıları Hariç Dosya Adlarını Al

Dosyaları listelemek ancak uzantılarını hariç tutmak istiyorsanız PowerShell'de Get-ChildItem ve ForEach-Object cmdlet'lerinin bir kombinasyonunu kullanabilirsiniz.

Get-ChildItem -Path "C:\MyFolder" -File | ForEach-Object { $_.BaseName }

Bu komut dosyası, belirtilen dizindeki tüm dosyaların temel adlarını (uzantısız dosya adları) listeler.

Dosya Adlarını Yalnızca Yinelemeli Olarak Al

Belirtilen dizindeki ve tüm alt dizinlerdeki dosyaları listelemek için PowerShell Get-ChildItem cmdlet'lerindeki -Recurse parametresini kullanın.

Get-ChildItem -Path "C:\MyFolder" -Recurse -File -Name

Bu komut, hedef dizinin altındaki tüm alt dizin düzeylerinde bulunanlar da dahil olmak üzere tüm dosya adlarını listeler.

Where-Object ile Gelişmiş Filtreleme

Daha gelişmiş senaryolarda, dosya listesini belirli bir metni içeren dosya adları gibi belirli ölçütlere göre filtrelemeniz gerekebilir. Where-Object cmdlet'i bu amaç için kullanılabilir.

İşte PowerShell betiğinin tamamı.

Get-ChildItem -Path "C:\MyFolder" -File | Where-Object { $_.Name -like '*myfile*' } | ForEach-Object { $_.Name }

Çözüm

Yukarıdaki yöntemleri izleyerek PowerShell'de dosya adlarını listeleyebilmelisiniz.

Get-ChildItem PowerShell Cmdlet'ini kullanmanın en basit yolu.

İlgili makaleler