Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu örnek yalnızca Windows platformları için geçerlidir.
PowerShell, bir PowerShell sürücüsünde bulunan öğelere başvurmak için Öğe kullanır. PowerShell FileSystem sağlayıcısıyla ilgilenirken, Öğe bir dosya, klasör veya PowerShell sürücüsü olabilir. Bu öğeleri listelemek ve bunlarla çalışmak, çoğu yönetim ayarında kritik bir temel görev olduğundan, bu görevleri ayrıntılı olarak tartışmak istiyoruz.
Dosyaları, klasörleri ve kayıt defteri anahtarlarını numaralandırma
Belirli bir konumdan öğe koleksiyonu almak bu kadar yaygın bir görev olduğundan, Get-ChildItem cmdlet'i özellikle bir klasör gibi bir kapsayıcıda bulunan tüm öğeleri döndürmek için tasarlanmıştır.
doğrudan C:\Windowsklasörünün içinde yer alan tüm dosya ve klasörleri döndürmek istiyorsanız şunu yazın:
PS> Get-ChildItem -Path C:\Windows
Directory: Microsoft.PowerShell.Core\FileSystem::C:\Windows
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 2006-05-16 8:10 AM 0 0.log
-a--- 2005-11-29 3:16 PM 97 acc1.txt
-a--- 2005-10-23 11:21 PM 3848 actsetup.log
...
Listeleme, cmd.exe'de dir komutunu veya Unix komut kabuğundaki ls komutunu girdiğinizde göreceğinize benzer görünür.
Get-ChildItem cmdlet'in parametrelerini kullanarak karmaşık listelemeler gerçekleştirebilirsiniz. şunu yazarak Get-ChildItem cmdlet'inin söz dizimini görebilirsiniz:
Get-Command -Name Get-ChildItem -Syntax
Bu parametreler, yüksek oranda özelleştirilmiş çıkış elde etmek için karıştırılabilir ve eşleştirilebilir.
Tüm kapsanan öğeleri listeleme
Hem Windows klasörünün içindeki öğeleri hem de alt klasörlerde yer alan öğeleri görmek için Get-ChildItemYineleme parametresini kullanın. Liste, Windows klasöründeki her şeyi ve alt klasörlerindeki öğeleri görüntüler. Örneğin:
PS> Get-ChildItem -Path C:\WINDOWS -Recurse
Directory: Microsoft.PowerShell.Core\FileSystem::C:\WINDOWS
Directory: Microsoft.PowerShell.Core\FileSystem::C:\WINDOWS\AppPatch
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 2004-08-04 8:00 AM 1852416 AcGenral.dll
...
Öğeleri ada göre filtreleme
Yalnızca öğelerin adlarını görüntülemek için Get-ChildItemName parametresini kullanın:
PS> Get-ChildItem -Path C:\WINDOWS -Name
addins
AppPatch
assembly
...
Gizli öğeleri zorla listeleme
Dosya Gezgini'nde veya cmd.exe gizlenen öğeler, Get-ChildItem komutunun çıkışında görüntülenmez. Gizli öğeleri görüntülemek için Force parametresini Get-ChildItemkullanın.
Örneğin:
Get-ChildItem -Path C:\Windows -Force
Get-ChildItem komutunun normal davranışını zorla geçersiz kılabildiğiniz için bu parametre Zorla olarak adlandırılır.
Force, sistemin güvenliğini tehlikeye atabilecek herhangi bir eylem gerçekleştiremese de, cmdlet'in normalde gerçekleştirmeyebileceği bir eylemi zorlayan yaygın olarak kullanılan bir parametredir.
Öğe adlarını joker karakterlerle eşleştirme
Get-ChildItem komutu, listedeki öğelerin yolunda joker karakterleri kabul eder.
Joker karakter eşleştirme PowerShell altyapısı tarafından işlendiğinden, joker karakterleri kabul eden tüm cmdlet'ler aynı gösterimi kullanır ve aynı eşleştirme davranışına sahiptir. PowerShell genel karakter gösterimi şunları içerir:
- Yıldız işareti (
*), herhangi bir karakterin sıfır veya daha fazla tekrarı ile eşleşir. - Soru işareti (
?) tam olarak bir karakterle eşleşir. - Sol köşeli ayraç (
[) karakteri ve sağ köşeli ayraç (]) karakteri eşleştirilecek bir karakter kümesini çevreler.
Aşağıda joker karakter belirtiminin nasıl çalıştığına ilişkin bazı örnekler bulunmaktadır.
Windows dizininde son ek .log ve taban adında tam olarak beş karakter bulunan tüm dosyaları bulmak için aşağıdaki komutu girin:
PS> Get-ChildItem -Path C:\Windows\?????.log
Directory: Microsoft.PowerShell.Core\FileSystem::C:\Windows
Mode LastWriteTime Length Name
---- ------------- ------ ----
...
-a--- 2006-05-11 6:31 PM 204276 ocgen.log
-a--- 2006-05-11 6:31 PM 22365 ocmsn.log
...
-a--- 2005-11-11 4:55 AM 64 setup.log
-a--- 2005-12-15 2:24 PM 17719 VxSDM.log
...
Windows dizininde x harfiyle başlayan tüm dosyaları bulmak için şunu yazın:
Get-ChildItem -Path C:\Windows\x*
Adları "x" veya "z" ile başlayan tüm dosyaları bulmak için şunu yazın:
Get-ChildItem -Path C:\Windows\[xz]*
Joker karakterler hakkında daha fazla bilgi için bkz. about_Wildcards.
Öğelerin hariç tutulması
Get-ChildItem
Exclude parametresini kullanarak belirli öğeleri dışlayabilirsiniz. Bu, tek bir deyimde karmaşık filtreleme gerçekleştirmenizi sağlar.
Örneğin, System32 klasöründe Windows Zaman Hizmeti DLL'sini bulmaya çalıştığınızı ve DLL adı hakkında hatırlayabildiğiniz tek şeyin "W" ile başlayıp içinde "32" olduğunu varsayalım.
w*32*.dll gibi bir ifade koşulları karşılayan tüm DLL'leri bulur, ancak dosyaları daha fazla filtrelemek ve win32 dosyalarını atlamak isteyebilirsiniz.
Exclude parametresini desen win*kullanarak bu dosyaları atlayabilirsiniz:
PS> Get-ChildItem -Path C:\WINDOWS\System32\w*32*.dll -Exclude win*
Directory: C:\WINDOWS\System32
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 3/18/2019 9:43 PM 495616 w32time.dll
-a--- 3/18/2019 9:44 PM 35328 w32topl.dll
-a--- 1/24/2020 5:44 PM 401920 Wldap32.dll
-a--- 10/10/2019 5:40 PM 442704 ws2_32.dll
-a--- 3/18/2019 9:44 PM 66048 wsnmp32.dll
-a--- 3/18/2019 9:44 PM 18944 wsock32.dll
-a--- 3/18/2019 9:44 PM 64792 wtsapi32.dll
Get-ChildItem parametrelerini karıştırma
aynı komutta Get-ChildItem cmdlet'in birkaç parametresini kullanabilirsiniz. Parametreleri karıştırmadan önce joker karakter eşleştirmeyi anladığınızdan emin olun. Örneğin, aşağıdaki komut hiçbir sonuç döndürmez:
Get-ChildItem -Path C:\Windows\*.dll -Recurse -Exclude [a-y]*.dll
Windows klasöründe "z" harfiyle başlayan iki DLL olmasına rağmen sonuç yoktur.
Joker karakteri yolun bir parçası olarak belirttiğimiz için sonuç döndürülmedi. Komut özyinelemeli olsa da, Get-ChildItem cmdlet'i windows klasöründeki öğeleri .dllile biten adlarla sınırlandırdı.
Dosya adları belirli bir desenle eşleşen dosyalar için özyinelemeli bir arama belirtmek üzere Include parametresini kullanın.
PS> Get-ChildItem -Path C:\Windows -Include *.dll -Recurse -Exclude [a-y]*.dll
Directory: Microsoft.PowerShell.Core\FileSystem::C:\Windows\System32\Setup
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 2004-08-04 8:00 AM 8261 zoneoc.dll
Directory: Microsoft.PowerShell.Core\FileSystem::C:\Windows\System32
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 2004-08-04 8:00 AM 337920 zipfldr.dll
PowerShell