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:\Temp1

Yukarı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 -Verbose

Yukarı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 -Verbose

Herhangi 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 -WhatIf

Komut 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\xyz

Yukarıdaki komut, kullanıcı adı ad\xyz (etki alanı\kullanıcı adı) içeren bir kimlik bilgisi kutusu açacaktır.

Çıktı:

İlgili makaleler