Bir Klasörü Kopyalamak için PowerShell nasıl kullanılır?
Gereksinim: PowerShell'i kullanarak bir klasörü kopyalayın.
PowerShell Kullanarak Klasör Nasıl Kopyalanır?
PowerShell'de klasörlerin kopyalanması birçok BT uzmanı ve sistem yöneticisi için ortak bir gereksinimdir. Yedekleme oluşturmalarına, verileri taşımalarına veya yalnızca dosyaları düzenlemelerine olanak tanır. Klasörleri tekrar tekrar yönetmeniz gerektiğinde GUI'den dosya ve klasörlerle çalışmak sıkıcı olabilir. Neyse ki PowerShell'imiz var! PowerShell, klasörleri kopyalamak da dahil olmak üzere çeşitli görevleri otomatikleştirmenize olanak tanıyan güçlü bir komut dosyası oluşturma aracıdır. Bu kılavuz, bir klasörün ve alt klasörlerin nasıl kopyalanacağı, tüm dosyaların bir klasörden diğerine nasıl kopyalanacağı vb. dahil olmak üzere PowerShell kullanarak bir klasörü kopyalama adımlarını ele alacaktır. İster yeni başlayan ister deneyimli bir PowerShell kullanıcısı olun, bu kılavuz Klasörleri hızlı ve kolay bir şekilde kopyalamak için ihtiyacınız olan bilgiyi sağlar.
PowerShell Kopyalama Klasörünün Temellerini Anlamak
PowerShell kopya klasörünün nasıl kullanılacağına ilişkin ayrıntılara dalmadan önce cmdlet'in temel sözdizimini anlamak önemlidir.
PowerShell copy-Item cmdlet'inin sözdizimi aşağıdaki gibidir:
Copy-Item [-Path] <String[]> [[-Destination] <String>] [-Container] [-Force] [-Recurse] [-Filter <String>] [-Include <String[]>] [-Exclude <String[]>] [-PassThru] [-Credential <PSCredential>] [-WhatIf] [-Confirm] [<CommonParameters>]
Burada Copy-Item cmdlet'indeki önemli parametrelerin listesi verilmiştir.
- -Path
-
Yol parametresi, kopyalamak istediğiniz klasörün veya dosyanın konumunu belirtir.
- -Destination
Hedef parametresi, klasörü kopyalamak istediğiniz konumu belirtir.
- -Container
Klasör yapısını kopyalamaya geçin ancak içindeki dosyaları kopyalamayın
- -Force
Hedef dosya veya klasör zaten mevcutsa üzerine yazar
- -Recurse
Belirtilen klasördeki ve alt klasörlerindeki tüm dosya ve klasörleri kopyalar
Örnek: Bir Klasörü Kopyalamak için PowerShell
PowerShell kullanarak bir klasörü ve içeriğini kopyalamak için Copy-Item cmdlet'ini -Recurse parametresiyle birlikte kullanabilirsiniz. Bu cmdlet, herhangi bir dosya veya klasörü bir konumdan diğerine kopyalamanıza olanak tanır. İşte temel sözdizimi:
Copy-Item -Path "SourcePath" -Destination "DestinationPath" -Recurse
Burada “SourcePath” kopyalamak istediğiniz klasörün yoludur ve “DestinationPath” kopyalamak istediğiniz yoldur. Örneğin “C:\Temp” dizininden “Logs” adlı bir klasörü “C:\Backup” dizinine kopyalayacaksanız komut şu şekilde görünecektir:
Copy-Item -Path C:\Temp\Logs -Destination C:\Backup -Recurse
-Recurse parametresi PowerShell'e tüm alt klasörleri dahil etmesini söyler. Copy-Item cmdlet'i otomatik olarak hedef klasörü oluşturur (New-Item cmdlet'ini kullanarak hedef Klasörü önceden oluşturmanız gerekmez). Ayrıntılı modda komut dosyası çıktısı şöyledir:
Bu cmdlet, halihazırda mevcut değilse hedef klasörü (bu durumda “C:\Backup”) oluşturur. Yalnızca .txt uzantılı dosyaları kopyalamak için "-Include *.txt" gibi kopyalanacak belirli bir dosya türü belirtmek de mümkündür.
Bir Klasörü ve İçeriğini Kopyalamak için PowerShell - Mevcut Olanın Üzerine Yazma
Yukarıdaki yöntemleri kullanarak bir klasörü kopyaladığınızda, klasör ve tüm içeriği hedefe kopyalanacaktır. Hedef klasör zaten aynı ada sahip bir klasör veya dosya içeriyorsa, bir hata mesajı görürsünüz: "Kopyalama Öğesi: Belirtilen
Varsayılan olarak bu cmdlet içeriğin üzerine yazmaz. Bu nedenle, hedefteki dosya ve klasörlerin üzerine yazmak için -Force parametresini kullanın.
Copy-Item -path "C:\Users\Username\Desktop\ExampleFolder" -Destination "D:\Backup" -Recurse -Force
Bu komut dosyası, kaynak klasördeki her dosyayı ve alt klasörü hedef klasöre kopyalayacaktır. Ayrıca, hedef klasörde kaynak klasördekilerle aynı ada sahip herhangi bir dosya varsa, onay istenmeden bunların üzerine yazılacaktır ("-confirm" anahtarını aksini belirtmediğiniz sürece).
Bir Klasörü kopyalayın ve PowerShell'de yeniden adlandırın
Klasörü ve içeriğini kopyalamak ancak kopyalanan klasöre farklı bir ad vermek istiyorsanız aşağıdaki PowerShell betiğini kullanabilirsiniz:
Copy-Item -Path "C:\Users\Username\Desktop\ExampleFolder" -Destination "D:\Backup\NewFolderName" -Recurse
Yukarıdaki komutta, klasör ve içeriği “D:\Backup” dizinine kopyalanacak, ancak kopyalanan klasör “ExampleFolder” yerine “NewFolderName” gibi yeni bir isimle adlandırılacaktır.
Belirli Dosyaları Bir Klasörden Kopyalama
Şimdi, kaynak klasördeki yalnızca belirli dosyaları veya alt klasörleri kopyalamak istediğinizi varsayalım. Kopyalamak istediğiniz dosya veya klasörleri belirtmek için joker karakterleri kullanabilirsiniz. Örneğin, yalnızca kaynak klasördeki tüm PNG dosyalarını kopyalamak istiyorsanız:
Copy-Item "C:\Temp\*.log" -Destination "C:\Temp\Logs"
Bu, kaynak klasördeki (C:\Temp) tüm LOG dosyalarını hedef klasöre (C:\Temp\Logs) kopyalayacaktır, ancak başka dosya veya alt klasörlere kopyalanmayacaktır.
Bir başka kullanışlı parametre ise -Exclude'dır; bu, belirli dosyaları veya alt klasörleri joker karakterleri kullanarak kopyanın dışında bırakmanıza olanak tanır. Örneğin, kaynak klasördeki “*.txt” dosya türleri dışındaki tüm dosyaları kopyalamak istiyorsanız:
Copy-Item "C:\Temp\Logs\*.*" -Destination "C:\Temp\Logs\Archive" -Exclude "*.txt"
Bu, metin dosyaları dışındaki kaynak klasördeki (C:\Temp\Logs) tüm dosyaları hedef klasöre (C:\Temp\Logs\Archive) kopyalayacaktır. Hedef klasörün zaten mevcut olduğundan emin olun.
PowerShell'de Klasör Yapısını Kopyala
Bir klasörün yapısını (yani dizinleri ve alt dizinleri, ancak dosyaları değil) kopyalamak istiyorsanız, PowerShell'deki "Get-ChildItem" ve "Copy-Item" cmdlet'lerini kullanabilirsiniz. İşte bunun nasıl yapılacağına dair bir örnek:
#Parameters
$source = "C:\Temp"
$destination = "C:\Logs"
#Copy Each Folder from source to the destination
Get-ChildItem -Path $Source -Recurse | Where-Object { $_.PSIsContainer } | ForEach-Object {
$dest = Join-Path $destination $_.FullName.Substring($Source.length);
New-Item -ItemType Directory -Path $dest -Force;
}
Bu komut dosyası, hedef dizindeki kaynak dizinin yapısının herhangi bir dosya hariç bir aynasını oluşturacaktır.
PowerShell Kullanarak Tüm Dosyaları Bir Klasörden Diğerine Kopyalama
Bazen, alt klasörleri kopyalamadan tüm dosyaları yalnızca bir klasörden diğerine kopyalamak isteyebilirsiniz. PowerShell, "Öğeyi Kopyala" cmdlet'ini kullanarak bunu başarmanın basit bir yolunu sunar. İşte bir örnek:
Copy-Item -Path "C:\Temp\*.*" -Destination "C:\Logs" -Force
Bu örnekte, “Copy-Item” cmdlet'i, tüm dosyaları “C:\” konumunda bulunan “Temp”ten “C:\” konumunda bulunan “Logs”a kopyalamak için kullanılır.
PowerShell kullanarak Dizini Uzak Bilgisayara Kopyalama
Ayrıca “Öğeyi Kopyala” komutunun klasörleri uzaktaki bir bilgisayara kopyalama yeteneğine sahip olduğunu da belirtmekte fayda var. Bunu yapmak için hedef klasörün UNC yolunu belirtmeniz gerekir. Örneğin, yerel bilgisayar dosya sisteminden “C:\Users\Kullanıcı adı\Masaüstü” içindeki “ÖrnekKlasör”ü, “D:\Backup” klasöründeki “RemotePC” adlı uzak bilgisayara kopyalamak istiyorsanız, komut aşağıdaki gibi olacaktır: Bunun gibi:
Copy-Item -Path "C:\Users\Username\Desktop\ExampleFolder" -Destination "\\RemotePC\D$\Backup"
PowerShell'de Klasörleri Kopyalamaya İlişkin İpuçları
PowerShell'de verimli klasör kopyalamayı sağlamak için burada PowerShell'de klasör kopyalamayı kolaylaştıracak birkaç ipucu ve püf noktası bulunmaktadır:
- Kopyalama işlemi sırasında olası sorunları gidermek için hata yönetimini ekleyin.
- Komutu gerçekte çalıştırmadan çalıştırırsanız ne olacağını görmek için -WhatIf parametresini kullanın. Bu, test amacıyla kullanışlıdır.
- Hedef klasördeki mevcut dosyaların üzerine yazmak için -Force parametresini kullanın.
- Alt klasörleri ve içeriklerini kopyalamak için -Recurse parametresini kullanın.
- Komutun gerçekleştirdiği işlemle ilgili ayrıntılı bilgileri görüntülemek için -Verbose anahtarını kullanın.
- Doğruluğundan emin olmak için kopyalama işlemini büyük ölçekte gerçekleştirmeden önce küçük bir dosya alt kümesinde test edin.
- Belirli dosyaları dosya uzantılarına veya diğer ölçütlere göre kopyalamak için "-Filter" parametresini kullanmayı düşünün. Ayrıca “-Include” ve “-Exclude” parametrelerimiz de var.
- Doğru ve erişilebilir olduklarından emin olmak için kaynak ve hedef yollarını kontrol edin.
- Klasörleri ve dosyaları kopyalamak için gerekli izinlere sahip olduğunuzu doğrulayın.
Kapanıyor
Bu kılavuzda PowerShell kullanarak klasör kopyalamanın temellerini ele aldık. Bir klasörü kopyalamak için PowerShell'i kullanmak, dosya ve klasörleri bir konumdan diğerine kopyalamanın kolay ve etkili bir yoludur. “Öğeyi Kopyala” komutunu ve çeşitli parametreleri kullanarak, klasörleri ve içeriklerini bilgisayarınızdaki herhangi bir konuma veya uzaktaki bir bilgisayara kolayca kopyalayabilirsiniz. Farklı adlara sahip klasörleri kopyalama, hedefteki dosyaların üzerine yazma ve alt klasörleri ve dosyaları kopyalama yeteneği sayesinde, dosya ve klasörleri yedekleme gibi dosya yönetimi görevlerinizi otomatikleştirmek için ihtiyacınız olan tüm araçlara sahip olacaksınız.
Sıkça Sorulan Sorular:
PowerShell kullanarak bir klasörü bir dizinden diğerine nasıl kopyalarım?
PowerShell kullanarak bir klasörü bir dizinden diğerine kopyalamak için Copy-Item cmdlet'ini kullanabilirsiniz. Kullanabileceğiniz komutun bir örneği:
Copy-Item -Path "C:\AppLogs\Logs" -Destination "C:\Archive\Logs" -Recurse
This script will copy the Folder “Logs” from the source directory “C:\AppLogs” to the destination directory “Logs” in “C:\Archive”.

