toplu iş dosyasını kullanarak klasörün tüm içeriğini başka bir klasöre kopyalamak?


130

İçinde bir klasörüm var C:\Folder1

Tüm içeriğini Folder1başka bir yere kopyalamak istiyorum ,D:\Folder2

Bunu bir toplu iş dosyası kullanarak nasıl yaparım?

Yanıtlar:


163

xcopy.exeçözüm burada. Windows'ta yerleşiktir.

xcopy /s c:\Folder1 d:\Folder2

Http://www.computerhope.com/xcopyhlp.htm adresinde daha fazla seçenek bulabilirsiniz.


3
Merhaba Hussain, toplu iş dosyasında xcopy / sc: \ Folder1 d: \ Folder2 komutunu denedim, ancak benim için çalışmıyor. lütfen bana daha fazla rehberlik eder misin?
SCM

Merhaba, Belki makinenizde o xcopy yok .. Ancak toplu iş dosyasını buradan indirebilirsiniz brothersoft.com/xcopy-177904.html
eHussain

4
Boş alt dizinleri de kopyalamak istiyorsanız / s / e bayraklarını kullanmalısınız.
Ameba Spugnosa

/ E otomatik olarak / s içermiyor mu?
mghicks

14
xcopykullanımdan kaldırılmıştır ve dosya adı 254 karakterden uzun olduğunda 'Yetersiz bellek' hatasını tetikler. robocopyBunun yerine kullanın : robocopy C:\Folder1 D:\Folder2 /COPYALL /E en.wikipedia.org/wiki/Robocopy
Marco Demaio

39

Robocopy'niz varsa,

robocopy C:\Folder1 D:\Folder2 /COPYALL /E

aksi takdirde,

xcopy /e /v C:\Folder1 D:\Folder2

1
Bu, Folder1'in içeriğini kopyalarsa, klasörün kendisini kopyalamak isterseniz ne yaparsınız?
Kyle Delaney

2
@KyleDelaney hedefe kaynak klasör adını dahil et, örneğin "xcopy / e / v C: \ Klasör1 D: \
Klasör2

1
RoboCopy'nin \ 'yi bir çıkış karakteri olarak kullandığına dikkat edin (CMD kullanmaz) , eğer alıntılanmış bir yolu bir boşluk ve sizin gibi biten eğik çizgi ile denerseniz ve "C:\My Folder\"geçerseniz kötü bir sürprizle karşılaşabilirsiniz. Bu SS64 sayfasını çok dikkatli okumanızı tavsiye ederim. "CMD'de bir kaçış karakteri nedir" tavşan deliğine tam bir yolculuk için, bkz . Toplu Komut Dosyasında Çift Tırnaktan Kaçış .
jrh

21

Hedefin bir dosya mı yoksa klasör mü olduğunu söyleyen mesajı kaldırmak istiyorsanız, sadece eğik çizgi eklemelisiniz:

xcopy /s c:\Folder1 d:\Folder2\


16

Xcopy kullanımını öneren birçok yanıt görüyorum. Ancak bu gereksizdir. Soru, yazarın klasörün kendisinin kopyalanmasını değil, KLASÖRDEKİ İÇERİK istediğini açıkça belirttiğinden, bu durumda -:

copy "C:\Folder1" *.*  "D:\Folder2"

Bunların tümü xcopy , içinde herhangi bir alt dizin varsa kullanılabilir.C:\Folder1


1
Kopyaladığınız klasör henüz mevcut değilse (sanırım) bu işe yaramaz, bu yüzden eklemek isteyebilirsinizmd D:\Folder2
Mark Deven

2
Benim copykomutu (istemi, Windows 10 komut) sözdizimi yanlış olduğunu söylüyor. Doğru sözdizimi şu copy "C:\Folder1\*.*" "D:\Folder2"
şekildedir

4

RoboCopy benim için işe yaramadı ve burada bazı iyi çözümler var, ancak hiçbiri XCopy anahtarlarını ve ne yaptıklarını açıklamadı. Ayrıca yolunuzun içinde boşluk olması durumunda tırnak işaretlerine ihtiyacınız vardır.

xcopy / i / e "C: \ temp \ klasör 1" "C: \ temp \ klasör 2"

İşte Microsoft'tan belgeler:

XCopy MS Belgeleri

/s: Specifies to include subdirectories. Excludes empty subdirectories
/e: Copies all subdirectories, even if they are empty
/i: specifies the destination is a folder (Otherwise it prompts you)

2
@echo off
::Ask
echo Your Source Path:
set INPUT1=
set /P INPUT1=Type input: %=%

echo Your Destination Path:
set INPUT2=
set /P INPUT2=Type input: %=%

xcopy %INPUT1% %INPUT2% /y /s

2

Bilgisayarımda, xcopy ve robocopy'nin de onlara giden yola ihtiyacı var, yani C: \ Windows \ System32 \ xcopy.exe

Bu yüzden basitçe "copy" kullanıyorum: copy / y .... \ Folder1 \ File.txt .... \ Folder2 \


2
@echo off
xcopy /s C:\yourfile C:\anotherfile\

Bu nasıl yapılır! Basit, değil mi?


-1

Bilginize ... TortoiseSVN kullanıyorsanız ve tüm depoları periyodik olarak "güvenli" bir konuma xcopy (veya dizin aynası) için basit bir toplu iş dosyası oluşturmak istiyorsanız, o zaman bu, kullanmak isteyebileceğiniz özel koddur. Gizli dizinleri / dosyaları kopyalar, salt okunur öznitelikleri ve tüm alt dizinleri ve hepsinden önemlisi, girdi istemez. Klasör1 (güvenli depo) ve klasör2'yi (kullanılabilir depo) doğru atadığınızdan emin olun.

@echo off
echo "Setting variables..."
set folder1="Z:\Path\To\Backup\Repo\Directory"
set folder2="\\Path\To\Usable\Repo\Directory"
echo "Removing sandbox version..."
IF EXIST %folder1% (
    rmdir %folder1% /s /q
)
echo "Copying official repository into backup location..."
xcopy /e /i /v /h /k %folder2% %folder1%

Ve işte bu millet!

Planlanan görevlerinize ekleyin ve asla geriye bakmayın.


-2
@echo off
:: variables
echo Backing up file
set /P source=Enter source folder:
set /P destination=Enter Destination folder:
set xcopy=xcopy /S/E/V/Q/F/H/I/N
%xcopy% %source% %destination%
echo files will be copy press enter to proceed
pause

2
Kodunuzun açıklaması yalnızca bu sorunun sorusunu soran kişiye değil, aynı soruna bir çözüm arayışında bununla karşılaşan gelecekteki insanlara da fayda sağlayacaktır.
Josh Burgess

3
Diğer bayraklarla doğrudan çelişen birkaç bayrağınız var. /Sboş olanlar dışında dizinleri ve alt dizinleri kopyalarken, boş olanlar /Edahil dizinleri ve alt dizinleri kopyalar. /Qkopyalama sırasında dosya adlarını göstermezken, kopyalama sırasında /Ftam kaynak ve hedef dosya adlarını görüntüler.
SomethingDark

-2

Dosyayı geçici bir klasöre kopyalayıp yapıştırmak ve sıkıştırmak ve bir smb bağlama noktasına aktarmak için bir .bat dosyası yazdım, umarım bu yardımcı olur,

    @echo off
    if not exist "C:\Temp Backup\" mkdir "C:\Temp Backup_%date:~-4,4%%date:~-10,2%%date:~-7,2%"
    if not exist "C:\Temp Backup_%date:~-4,4%%date:~-10,2%%date:~-7,2%\ZIP" mkdir "C:\Temp Backup_%date:~-4,4%%date:~-10,2%%date:~-7,2%\ZIP"
    if not exist "C:\Temp Backup_%date:~-4,4%%date:~-10,2%%date:~-7,2%\Logs" mkdir "C:\Temp Backup_%date:~-4,4%%date:~-10,2%%date:~-7,2%\Logs"
    xcopy /s/e/q "C:\Source" "C:\Temp Backup_%date:~-4,4%%date:~-10,2%%date:~-7,2%"
   Backup_%date:~-4,4%%date:~-10,2%%date:~-7,2%\Logs"
    "C:\Program Files (x86)\WinRAR\WinRAR.exe" a  "C:\Temp Backup_%date:~-4,4%%date:~-10,2%%date:~-7,2%\ZIP\ZIP_Backup_%date:~-4,4%_%date:~-10,2%_%date:~-7,2%.rar" "C:\Temp Backup_%date:~-4,4%%date:~-10,2%%date:~-7,2%\TELIUM"
    "C:\Program Files (x86)\WinRAR\WinRAR.exe" a  "C:\Temp Backup_%date:~-4,4%%date:~-10,2%%date:~-7,2%\ZIP\ZIP_Backup_Log_%date:~-4,4%_%date:~-10,2%_%date:~-7,2%.rar" "C:\Temp Backup_%date:~-4,4%%date:~-10,2%%date:~-7,2%\Logs"
    NET USE \\IP\IPC$ /u:IP\username password
    ROBOCOPY "C:\Temp Backup_%date:~-4,4%%date:~-10,2%%date:~-7,2%\ZIP"  "\\IP\Backup Folder" /z /MIR /unilog+:"C:\backup_log_%date:~-4,4%%date:~-10,2%%date:~-7,2%.log"
    NET USE \\172.20.10.103\IPC$ /D
    RMDIR /S /Q "C:\Temp Backup_%date:~-4,4%%date:~-10,2%%date:~-7,2%"
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.