Xcopy'nin yeni değiştirilmiş veya yeni dosyalar için bir yolu var mı?


57

Bir web sitesini masaüstümden web sunucuma dağıtmaya çalışıyorum ve şu anda bunu yapıyorum:

 xcopy C:\source X:\destination /s

Masaüstüm bir Windows XP makinesi ve bir Windows Server 2008 makinesine kopyalamam gerekiyor, ancak bu her şeyi kopyalar ve tüm site çok büyüktür ve kopyalamanın bitmesi gerçekten uzun zaman alır.

Özellikle yeni veya güncellenmiş dosyaları kopyalamanın bir yolu var mı? Değişen bir tarihi girebildiğini görüyorum ama hedef dosyayla karşılaştırmanın daha kolay bir yolu olup olmadığını görmek istedim ...

Ayrıca, işi de yapabilecek xcopy dışında bir şey kullanmaya açığım.


5
Robocopy'yi de deneyebilirsiniz.
joerage

Yanıtlar:


97

Gönderen XCOPY belgelerinde :

/ d [: mm-gg-yyyy]: Yalnızca belirtilen tarihte veya bu tarihte değiştirilen kaynak dosyaları kopyalar. Bir mm-gg-yyyy değeri eklemezseniz, xcopy varolan Hedef dosyalarından daha yeni olan tüm Kaynak dosyalarını kopyalar. Bu komut satırı seçeneği, değişen dosyaları güncellemenizi sağlar.

Bu nedenle, örneğinizle birlikte şunu okumalıdır:

xcopy C:\source X:\destination /s /d

2
"/ d" bir tarih vermek zorunda gibi görünüyor. soruda belirtildiği gibi, aklımda bir kesme tarihi yok. sadece yeni ve güncellenmiş dosyaları kopyalamak istiyorum
leora

10
Hayır, tarih isteğe bağlıdır! Bu yüzden köşeli ayraç içindedir. Gerçekten o satırı okudun mu? Yapmak istediğini tam olarak yaptığını söylüyor!
Mark

4
Bu cevapta dikkat edilmesi gereken tek şey, web sunucusu ve iş istasyonunuzun aynı anda ayarlanmış olmasıdır! Her ikisi de NTP kullanmıyorsa, bu dosyaları özleyebilir veya gerekenden fazla dosya kopyalayabilir.
CarlF

5
Belgeler kesin olarak belirtmekle birlikte , tarihin isteğe bağlı olduğu konusunda belirgin olmadığı için diğer seçeneklere bakın ve çözüm olmadığını düşündüğünüz /diçin bunu göz ardı etmek kolaydır . :-)
Stéphane Gourichon 31:15

2
Hedef klasörde bir dosya bulunmuyorsa, tarih belirtilmemiş / D, kopyalanacak, istenen sonuç olmayabilir.
tbone

24

Robocopy de iyi bir alternatiftir:

Robocopy varsayılan olarak yalnızca kaynak ve hedef farklı zaman damgalarına veya farklı dosya boyutlarına sahipse bir dosyayı kopyalar.

Ayrıca, çok daha fazlasını yapabilirsiniz - mirror komutu, dosyaları da sildiğiniz web siteleri için kullanışlıdır.


Robocopy'den bahsettiğiniz için teşekkürler - mevcut yeni araçlardan bazılarını öğrenmek her zaman güzeldir.
Casper Leon Nielsen

3

/ A seçeneğini kullanın. Tüm yeni veya değiştirilmiş dosyalar arşiv öznitelik kümesine sahip olacaktır.

Detaylar için aşağıdaki linke bakınız:

Xcopy komutu sözdizimi ve örnekler


1
Evet, fakat siz sürece xcopy /M, kaynak dosyalar siz kopyaladıktan sonra arşiv özniteliği ayarlamaya devam edecek ve bir dahaki sefere de kopyalanacaktır. Kaynak dosyalara yazma erişimi gerektirir.
Nigel Touch

2

~ 80k dosyaları ve ~ 2k klasörleri için zamanlanmış görevim var:

xcopy \\sourceserver\share\ Q:\backuptarget\folder\ /i /d /y /he /C /EXCLUDE:C:\backup\list.txt > C:\backup\backup.log

/ C seçeneği, açık olması veya hizmet hesabı altında izinli olmaması nedeniyle dosya veya klasör için "erişim reddedilse" bile olsa, bu zamanlanmış görevi altında çalıştırın.

">", ">>" yöneltmesini kullanabilmek için her defasında günlüğün üzerine yazar.


0

Orada rsync , ama Windows üzerinde de kullanmadım. Normalde Linux'ta kullanmamın yolu:

rsync -avuz src/ remote:dst/

sadece güncellemeler gönderir (yeni ve değiştirilmiş dosyalar).


-1

BitTorrent Sync harika çalışıyor. Bir dosyayı değiştirdiğinizde otomatik olarak güncellenecektir. Eşler arası. Gerekirse, aynı anda birden fazla konumu güncelleyin. Kullanımı kolay.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.