PowerShell Taşıma Öğesi | Dosyalar ve klasörler nasıl filme alınır | Örnekler
PowerShell'de Öğeyi Taşı'ya Giriş
Bu yazımızda PowerShell Move-Item hakkında bilgi sahibi olacağız. Powershell'deki Move-Item cmdlet'i, Windows'taki kes/Yapıştır seçeneğine benzer şekilde çalışır. Dosyaları, klasörleri, kayıt defterini ve bunların özellikleri, içerikleri ve alt öğelerini bir konumdan başka bir konuma taşır. Konumun aynı sağlayıcı tarafından desteklenmesi gerekir. Öğeleri bir konumdan diğerine taşıdığınızda, temel olarak öğeler orijinal konumdan silinir ve başka bir konuma taşınır.
Söz Dizimi
Move-Item
[-Path] <String[]>
[[-Destination] <String>]
[-Force]
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[-PassThru]
[-Credential <PSCredential>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]Söz Dizimi
Move-Item
-LiteralPath <String[]>
[[-Destination] <String>]
[-Force]
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[-PassThru]
[-Credential <PSCredential>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]PowerShell Taşıma Öğesinin Parametreleri
Aşağıda PowerShell Move-Item'da kullanılan parametreler verilmiştir:
- Yol: Dosyanın kaynak konumunu belirtir. Varsayılan dizin geçerli dizindir. Geçerli konum olarak (.) öğesini de belirtebilirsiniz. Joker karakter parametrelerine izin verilir. Dizindeki tüm öğelere atıfta bulunmak için joker karakter (*) kullanabilirsiniz.
- LiternalPath: Hiçbir joker karakter parametresine izin verilmediğinden tam yol değerini yazmanız gerekmesi dışında -path parametresiyle hemen hemen aynıdır. Hiçbir karakter joker karakter olarak yorumlanmaz. Kaçış karakterlerini kullanmak istiyorsanız bunları tek bir tırnak işareti altında kullanın. Tek tırnak içinde olduklarında PowerShell kaçış karakterini bir dize olarak ele alır. Kaçış (özel) karakterler hakkında daha fazla bilgi edinmek için. docs.microsoft
- Hedef: İstenen konuma taşınacak öğelerin yolu. Hedef yol mevcut değilse bir istisna atar ancak hedef parametrenin kendisinde yeni bir dosya adı sağlamak için ihtiyaç duyduğunuz dosya adını yeniden adlandırabilirsiniz. Varsayılan hedef geçerli konumdur ve joker karakterlere izin verilir ancak sonuçta tek bir konum belirtilmelidir.
- Zorla: Öğeleri kullanıcının onayı olmadan hedef klasöre taşıyın. Ayrıca, hedef konumda yinelenen öğeler bulunursa, güvenlik izinleri karşılanırsa bunların üzerine yazar. Ayrıca sistemin salt okunur dosyasını da taşıyabilir.
- Dahil et: Hedef konuma taşımak için kaynak yolundan belirli dosya adlarını (C:\temp\test*) veya uzantıları (*.pdf) içerir. Joker karakterlere izin verilir. Include parametresi, kaynak yolunun içeriği belirtildiğinde faydalıdır. Örneğin, c:\temp\* kaynak yolunda c:\temp klasöründeki tüm dosyaları içerecektir ve ardından Include parametresi Move-Item cmdlet'inde ayarlanan filtreler buna göre çalışacaktır.
- Hariç Tut: Belirli dosya adlarını (c:\temp\test*) veya uzantıları (*.txt) hedef konuma taşınmamaları için kaynak yolundan hariç tutar. Joker karakter parametrelerine izin verilir. Belirli verileri filtrelemek için yine tüm klasörü veya kayıt defteri içeriğini kullanmanız gerekir.
- Filtre: Filtre parametresi, Include ve Exclude parametresinden daha etkilidir çünkü değer alındıktan sonra nesneleri filtrelemek yerine, nesneleri alırken filtre uygular. Filtrenin joker karakter desteği gibi tam sözdizimi sağlayıcıya bağlıdır.
- PassThru: PassThru parametresi kullanıldığında, komutun çıkışı PowerShell konsoluna geri döner.
- Kimlik bilgisi: Kaynak ve hedef dizinler farklı alanlarda veya iş istasyonlarındaysa ve farklı kimlik bilgileri kullanıyorlarsa hedef ana makine kimlik bilgilerini belirtmeniz gerekir. Kimlik bilgilerini Get-Credential'ı kullanarak bir değişkende saklayabilir ve bunu kimlik bilgisi parametresine sağlayabilirsiniz. Örneğin, $cred=Get-Credential. -Credential parametresinden sonra kullanıcı adı girerseniz şifre sorulacaktır.
- Ya şu durumda: Komut yürütülmeden komut çalıştırıldığında ne olacağını gösterir.
- Onayla: Herhangi bir işlem yapmadan önce onaylar. Bu parametreyi kullandığınızda aşağıdaki seçeneklere ulaşırsınız. [Y] Evet [A] Tümüne Evet [N] Hayır [L] Tümüne Hayır [S] Askıya Al [?] Yardım (varsayılan: “Y”):
- CommonParameters: Aşağıda Move-Item cmdlet'iyle kullanılan ve gelişmiş işlev parametreleri olarak da adlandırılan ortak parametreler yer almaktadır. Verbose, -Debug, -ErrorAction, -WarningAction, - InformationAction, -ErrorVariable, -WarningVarible, -InformationVariable, -OutVariable, -OutBuffer, -Pipelinevariable, -UseTransacation
PowerShell Taşıma Öğesini Uygulama Örnekleri
Aşağıda PowerShell Taşıma Öğesi örnekleri verilmiştir:
1. Öğeyi Kaynak ve Hedefle Taşı
Move-Item -Path D:\Temp\* -Destination D:\Temp1Yukarıdaki örnekte görüntülenen joker karakteri (*) kullanırsanız, klasör içerikleri taşınır, aksi takdirde tüm klasör taşınır. Yukarıdaki örnekte, açık bir parametre belirtilmediğinden hangi dosyaların kaynaktan hedefe taşındığını göremezsiniz, ancak PassThru (konsolun kendisinde çıktıyı döndüren) veya -Verbose parametresini kullandığınızda çıktı/işlem yalnızca PowerShell konsolunda görüntülenecektir. .
2. Öğeyi PassThru ile Taşı
Kod:
Move-Item -Path D:\Temp\* -Destination D:\Temp1 -PassThruÇıktı:
3. Öğeyi Şununla Taşı - Ayrıntılı
Kod:
Move-Item -Path D:\Temp\* -Destination D:\Temp1 -VerboseÇıktı:
4. Öğeyi Şununla Taşı - Dahil Et
Kod:
Move-Item -Path D:\Temp\* -Destination D:\Temp1 -Include *.html -VerboseYukarıdaki kodun açıklaması: Yukarıdaki örnekte, komut dosyası .html uzantısına sahip tüm dosyaları taşıyacaktır. Sadece Include parametresini kullandığımızda script HTML uzantısı olmayan dosya veya klasörler için hata verecektir.
Çıktı:
Yukarıdaki istisnayı -ErrorAction parametresi ile basitçe ortadan kaldırabiliriz.
Kod:
Move-Item -Path D:\Temp\* -Destination D:\Temp1 -Include *.html -ErrorAction Ignore -VerboseÇıktı:
5. Öğeyi Şununla Taşı - Hariç Tut
Kod:
Move-Item -Path D:\Temp\* -Destination D:\Temp1 -Exclude *.html -ErrorAction Ignore -VerboseÇıktı:
Yukarıdaki örnekte, .html dosyaları hariç dosyalar hedef klasöre taşınacaktır.
6. Alt öğeler içeren Öğeyi Taşı
Joker karakter kullandığımızda, yalnızca o klasörün altındaki öğeleri içerir, alt klasörleri kapsamaz. Örneğin, D:\temp\* klasörü, D:\temp\LGPO altındaki veya diğer alt klasörlerin altındaki dosyaları filtreleyemez. Bunun için öncelikle Get-ChildItem ve -Recurse parametresini kullanarak dosyaları çıkartmamız ve daha sonra başka bir konuma taşımamız gerekiyor.
Kod:
Get-ChildItem -Path D:\Temp -Recurse -Include *.html | Move-Item -Destination D:\Temp1 -VerboseÇıktı:
7. Öğeyi Şununla Taşı - Onayla
Kod:
Move-Item -Path D:\Temp\* -Destination D:\Temp1 -Confirm -VerboseHerhangi bir öğeyi taşımadan önce kullanıcının onayını bekleyecektir.
Çıktı:
8. Öğeyi -WhatIf ile Taşı
Kod:
Move-Item -Path D:\Temp\* -Destination D:\Temp1 -WhatIfKomut gerçekte çalıştırılmadan yürütüldüğünde ne olacağını gösterir.
Çıktı:
9. Öğeyi Kimlik Bilgisiyle Taşı
Kod:
Move-Item -Path D:\Temp\* -Destination D:\Temp1 -Credential ad\xyzYukarıdaki komut, kullanıcı adı ad\xyz (etki alanı\kullanıcı adı) içeren bir kimlik bilgisi kutusu açacaktır.
Çıktı:









