Dosyaları kopyalamak için windows komut satırı komutu nedir?


34

Dosyaları kopyalamak için windows komut istemi komutu nedir?

Bir dosyayı A konumundan B konumuna taşımam gerekiyor. Ayrıca B konumu klasörü yoksa, oluşturulmasını istiyorum.

Komut satırı olmak için buna ihtiyacım var ki otomatikleştireyim.

Windows sürümü XP'dir.


1
robocopyçok iyi çalışıyor
Nixphoe

Yanıtlar:


44

Emir xcopy, aradığın şey. Örnek:

xcopy source destination /E /C /H /R /K /O /Y

Yukarıdaki komut kaynağı hedefe kopyalar, dosyalar ve dizinler (boş olanlar dahil), hata durmaz, gizli ve sistem dosyalarını kopyalar, salt okunur dosyaların üzerine yazar, nitelikleri ve sahiplik / ACL bilgilerini korur ve varolan hedef dosyalarının üzerine yazmak için sor.

/E    Copies directories and subdirectories, including empty ones.
      Same as /S /E. May be used to modify /T.
/C    Continues copying even if errors occur.
/H    Copies hidden and system files also.
/R    Overwrites read-only files.
/K    Copies attributes. Normal Xcopy will reset read-only attributes.
/O    Copies file ownership and ACL information.
/Y    Suppresses prompting to confirm you want to overwrite an
      existing destination file.

Daha fazla bilgi xcopy /?ve komut satırınız için.


2
Pencerelerin gelecekteki sürümleri RoboCopy'dir. Vista'nın XCOPY'sinden: "NOT: Xcopy şimdi kullanımdan kaldırıldı, lütfen Robocopy'yi kullanın."
George Tsiokos

1
İlginçtir, yorumunuzdan iki yıl sonra, George, xcopy hala Windows 7'de 'dünyayı yönetiyor'

Katıştırılmış Windows XP ortamlarının (POSReady 2009, vb.) Xcopy ile gönderilmediğini unutmayın.
Epoc

Tüm bu seçenekleri listelemek için bir düzenleme önerdim ...! Otomatize etmiyorsanız /E /Hve /K /Obirkaç kullanışlı bilgi
istemiyle

Unutmayın /J, bu büyük dosyaları kopyalarken XCopy ile bir hatayı önler . Neden bunu varsayılan hale getiremediklerinden emin değilim ...
BlueRaja

8

Klasörü oluşturmak için md kullanın (zaten varsa sorun değil)

Kullanım kopya veya taşıma dosyaları için ve xcopy klasörler için


Bana bir sözdizimi örneği verebilir misiniz?
David Basarab

3
fred.txt kopyala copy_of_fred.txt
Adam Gibbins

1
kopyala? Size yardım metni verecek, bir DOS sayfası gibi.
Scottie T

2

Bir toplu iş dosyasında:

if not exists locationB\nul mkdir locationB
copy locationA\file locationB

if not existsvar olup olmadığını görmek için parametreyi kontrol eder, ancak yalnızca dosyalar üzerinde çalışır. Bir dizinin varlığını kontrol etmek için , "nul" adında bir "sahte dosya" aramanız gerekir - bu dosyanın varlığını kontrol etmek, dizin varsa her zaman doğru olacaktır.

Kopya çizgi kopyalar denilen dosya filedizinde locationAiçin locationBdosyanın aynı şey ve isimler. Dosyayı aynı anda yeniden adlandırmak istiyorsanız, bunu da yapabilirsiniz:

copy locationA\file locationB\newfilename

2

Kopyayı ve diğer gelişmiş özellikleri senkronize etme yeteneğini istiyorsanız (belirli klasörleri yok sayın, yalnızca belirli joker karakterleri ekleyin), sonra bakın robocopy. Vista ve ötesine dahil edilmiş, önceki sürümlerde isteğe bağlı (kaynak kiti araçlarından).


Önemli bir şey için, robokopi ile de gidiyorum. Çok sayıda dosyayı senkronize ederken xcopy üzerindeki büyük performans farkını hatırlıyorum.
Kara Marfia

1

Yedekleme komut dosyaları oluşturuyorsanız ROBOCOPY kullanın. xcopy kullanımdan kaldırılmıştır ve yakın bir gelecekte kullanım dışı bırakılacaktır. robocopy, xcopy'nin yapabileceği her şeyi yapabilir. Aynı zamanda daha esnek ve güvenilirdir. Robocopy ile senaryolar oluşturmak onları daha sonra kanıtlayacaktır.


  1. Klasörleri kolayca kopyalamak için robokopi kullanın. Robocopy komutu, xcopy komutunun yerine geçiyor. İçeriği tanımlamak için endişelenmenize gerek kalmadan hızlı bir şekilde tüm klasörleri kopyalayabilir. Örneğin, C: \ tools dizininin tüm içeriğini D: \ backup \ tools yeni klasörüne kopyalamak için aşağıdakileri girin:

    robocopy C:\tools D:\backup\tools /e
    

    / E değiştiricisi, robokopiye tüm alt dizinleri içermesini söyler. Bu boş klasörler içerir. robokopi gizli ve sistem dosyalarını otomatik olarak kopyalar. Hedef konumda yoksa, yeni dizinler oluşturur.

  2. Bir dizini yansıt. Bir dizini yansıtmak, yedekleme yapmak için mükemmeldir. Robocopy'nin ayna seçeneği, tüm içerikleri kaynaktan hedefe kopyalayacaktır. Daha sonra hedefteki kaynağında olmayan herhangi bir şeyi silecektir. Bu, yedeklemenizin yalnızca dosyalarınızın en son sürümlerine sahip olmasını sağlar. Örneğin, C: \ Kullanıcılar \ Belgelerim'i D: \ yedekleme \ Belgelerim'e yansıtmak için aşağıdakini girin: [4]

    robocopy "C:\Users\My Documents" "D:\backup\My Documents" /mir
    

    Bu işlev orijinal dosyaların tüm izinlerini koruyacaktır.

  3. Yeniden başlatmayı etkinleştir. Bağlantı kopyasının ortasından koparsa, işlemi yeniden başlatma özelliğini dahil etmek isteyebilirsiniz.

    robocopy "C:\Users\My Documents" "D:\backup\My Documents" /z
    
  4. Kopyalama işlemini günlüğe kaydedin. robocopy, bir günlük dosyası oluşturmanıza olanak sağlar. Bu, sorunları belirlemenize veya kopyalananın arşivini oluşturmanıza yardımcı olabilir.

    robocopy "C:\Users\My Documents" "D:\backup\My Documents" /log+:<filename>.txt
    

    / Log + değiştiricisi, üzerine yazmak yerine mevcut günlük dosyasını ekler. Eski günlük dosyasının üzerine yazmayı tercih ederseniz, /log:.txt dosyasını kullanın.


0

xcopy sizin için dizin yapısını oluşturacak. İşin püf noktası, / I seçeneğini kullanmak ve dosya adının sonuna yıldız işareti koymaktır; böylece xcopy birden fazla dosya kopyaladığınızı düşünür, aksi takdirde hedef adın istediğiniz dosya adı mı yoksa istediğiniz dizin adı mı olduğunu sorar. . Örneğin.

xcopy /I c:\<SourceDir>\<SourceFile> c:\<TargetDirThatDoesNOTExist>

RoboCopy'ye de bakardım, ancak Windows'tan Vista'ya kadar olmadığı için kaynak setinden almanız gerekir.


-1

Yukarıdaki komut, kaynak dosyanın adı ile ek bir dizin seviyesi oluşturur. Böylece ... xcopy / I srcdir \ dir1 \ dir2 \ file1.txt * destdir \ dir1 \ dir2 \ file1.txt, destdir \ dir1 \ dir2 \ file1.txt \ file1.txt ile sonuçlanır.


1
Zaten kabul edilmiş bir cevabı olan ve cevabınıza katma değer katkısı olmayan eski bir soruya cevap vermek mantıklı değildir.
alphamikevictor,
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.