22.06.2020

Robocopy

Çoğu durumlarda grafik arayüzün dosya kopyalama yetenekleri ile yetiniyoruz. Bunun dezavantajlarından biri olabilecekler hakkında önceden karar verilemiyor olması. Oluşan sıra dışı durumlar veya hatalar (dosya üzerine yazma, hedefteki dosyanın kaynaktakinden yeni olması vs) ile ilgili oluştuğu anda soru sorar. Bu da tüm süreç boyunca klavyenin başında oturulmasını gerektirir. Düz komut satırı aracı copy ise daha az şeyler sunar.

Bunun alternatifi, yine bir Windows aracı olan Robocopy olabilir.

C:\Klasor1 klasörü kaynak, D:\Klasor2 de hedef konumumuz olsun.

Düz kopyalama
C:\robocopy C:\Klasor1 D:\Klasor2
Bu yöntem ile boş klasörler kopyalanmaz.

Boş klasörleri de hedefte yarat
C:\robocopy C:\Klasor1 D:\Klasor2 /E
Taşı
C:\robocopy C:\Klasor1 D:\Klasor2 /E /MOVE
Bu şekilde C:\Klasor1 de silinir, tüm içerik D:\Klasor2 içine taşınmış olur.

Taşı ama klasör yapısını silme
C:\robocopy C:\Klasor1 D:\Klasor2 /E /MOV
Sadece MOVE anahtarının son harfini silerek kaynak konumun klasör yapısını bozmadan taşıma işleminin yapılmasını sağlar. Bu şekilde kaynaktaki klasör yapısının var olmasını bekleyen başka programların çalışması olumsuz etkilenmez.

Aynalama
C:\robocopy C:\Klasor1 D:\Klasor2 /E /MIR 
Kaynak klasörün tüm dosya yapısının aynısı hedefte oluşturulur. Eğer tüm dosyalar mevcutsa ve robocopy işlemi tekrarlanıyorsa kaynaktaki yeni oluşturulan dosyalar hedefe ilave edilir, veya kaynakta silinmiş dosyalar hedeften de silinir.

Hariç Tutma
Bir klasörü hariç tutarak taşımayı tamamlamak için /XD anahtarı kullanılır.
C:\robocopy C:\Klasor1 D:\Klasor2 /E /XD "C:\Klasor1\temp"
Burada klasör ismi yukarıdaki gibi tam yol ile verilebileceği gibi wildcard'lar ile de verilebilir:
C:\robocopy C:\Klasor1 D:\Klasor2 /E /XD "*temp*"
Benzer şekilde dosya hariç tutma için /XF anahtarı kullanılır.
C:\robocopy C:\Klasor1 D:\Klasor2 /E /XF "C:\Klasor1\bilgi.txt"
Burada da dosya adı tam yol veya wildcard'larla belirtilebilir.

    C:\robocopy C:\Klasor1 D:\Klasor2 /E /XF "*.txt"

Yenileri hariç tutarak taşı. Hedefte daha yeni dosya varsa hariç tut:

C:\robocopy C:\klasor1 D:\klasor2 /E /XN

Değişen dosyaları hariç tut. Burada değişiklik dosya boyutu bazında. Son değişitirme tarihi aynı olup boyutu farklı olan dosyaları da taşıma kapsamında tut:

C:\robocopy C:\klasor1 D:\klasor2 /E /XC
 
Kayıt tut
Yaptıklarının kaydını tut
 
C:\robocopy C:\klasor1 D:\klasor2 /E /LOG:D:\robolog.txt

Ya da hem kaydını tut, hem de ekrana yaz: 

C:\robocopy C:\klasor1 D:\klasor2 /E /TEE /LOG:D:\robolog.txt

Yedekleme modunda başla

Tek bir dosya kopyalıyoruz. Garip bir şey ama, yetkiniz olmasına rağmen korumalı bir dosya üzerine yazmak istiyorsanız bunu yapabileceğiniz bir anahtarı var:

C:\robocopy C:\klasor1 D:\klasor2 sistemdosyasi.dll /E /B

Devam ettirilebilir kipte kopyala

Ara sıra kesilen bir ağ bağlantısı üzerinden büyük bir dosya kopyalıyoruz. Bağlantısı kesildikten sonra tekrar bağlandığında kopyalamaya baştan başlamasını değil de kaldığımız yerden devam etmesini istiyoruz. Bu durumda:

C:\robocopy C:\klasor1 D:\klasor2 /E /Z

Bir de devam ettirilebilir kipte başlayıp, yetki sorunu çıkarması durumunda yedekleme kipine geçmesi var:

C:\robocopy C:\klasor1 D:\klasor2 /E /ZB

 ---
[1] https://www.youtube.com/watch?v=gTzTeHmKMKw

Hiç yorum yok: