копіювання всього вмісту папки в іншу папку за допомогою пакетного файлу?


130

У мене папка в C:\Folder1

Я хочу скопіювати весь вміст Folder1в інше місце,D:\Folder2

Як це зробити за допомогою пакетного файлу?

Відповіді:


163

xcopy.exeтут є рішення. Він вбудований у Windows.

xcopy /s c:\Folder1 d:\Folder2

Більше варіантів ви можете знайти на веб- сайті http://www.computerhope.com/xcopyhlp.htm


3
Привіт Хуссейне, я спробував команду xcopy / sc: \ Folder1 d: \ Folder2 у пакетному файлі, але це не працює для мене. Чи можете ви, будь ласка, мене більше наводити.
СКМ

Привіт, Може бути , ви не маючи , що XCOPY на вашій машині .. Однак ви можете завантажити пакетний файл тут brothersoft.com/xcopy-177904.html
eHussain

4
Якщо ви хочете скопіювати також порожні підкаталоги, ви повинні використовувати прапорці / s / e.
Ameba Spugnosa

Не включає / e автоматично / s?
магіки

14
xcopyзастаріла і видає помилку "Недостатня пам'ять", коли ім'я файлу перевищує 254 символи. Використовуйте robocopyзамість цього: robocopy C:\Folder1 D:\Folder2 /COPYALL /E en.wikipedia.org/wiki/Robocopy
Marco Demaio

39

Якщо у вас є роботокопія,

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

інакше,

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

1
Якщо це копіює вміст Folder1, що робити, якщо ви хочете скопіювати саму папку?
Кайл Делані

2
@KyleDelaney включте ім'я вихідної папки в пункт призначення, наприклад "xcopy / e / v C: \ Folder1 D: \ Folder2 \ Folder1 \"
mghicks

1
Зауважте, що RoboCopy використовує \ як символ втечі (CMD не робить) , якщо ви спробуєте пройти котируваний шлях з пробілом та кінцевою косою рисою, начебто "C:\My Folder\"ви можете отримати неприємний сюрприз. Я рекомендую дуже уважно прочитати цю сторінку SS64. Для повної подорожі по кроликовій норі «що є втеча символом у CMD» див. Уникнення подвійних цитат у пакетному сценарії .
jrh

21

якщо ви хочете видалити повідомлення, яке вказує, чи є адресою файл чи папку, ви просто додаєте косу рису:

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


16

Я бачу багато відповідей, що дозволяють запропонувати використання xcopy. Але це зайве. Оскільки в питанні чітко зазначається, що автор хоче, щоб ЗМІСТ У ФАКУЛІ не в цій справі була скопійована сама папка, ми можемо:

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

Ось все xcopy це можна використовувати, якщо в ньому існує будь-який підкаталогC:\Folder1


1
Це не працює, якщо папка, в яку ви копіюєте, ще не існує (я вважаю), тому ви можете додатиmd D:\Folder2
Марк Девен

2
Моя copyкоманда (командний рядок Windows 10) говорить про те, що синтаксис невірний. Наступним буде правильний синтаксис:copy "C:\Folder1\*.*" "D:\Folder2"
j00hi

4

RoboCopy не працював для мене, і тут є кілька хороших рішень, але жодне не пояснило перемикачі XCopy і що вони роблять. Також вам потрібні лапки, якщо на вашому шляху є пробіли.

xcopy / i / e "C: \ temp \ папка 1" "C: \ temp \ папка 2"

Ось документація від Microsoft:

XCopy MS Документація

/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

На моєму ПК, xcopy та robocopy потрібен також шлях до них, тобто C: \ Windows \ System32 \ xcopy.exe

Ось чому я використовую просто "копіювати": copy / y .... \ Folder1 \ File.txt .... \ Folder2 \



-1

FYI ... якщо ви використовуєте TortoiseSVN і хочете створити простий пакетний файл, щоб періодично xcopy (або дзеркало каталогу) періодично зберігати цілі сховища у "безпечне" місцеположення, то це специфічний код, який ви можете використовувати. Він копіює через приховані каталоги / файли, підтримує атрибути лише для читання, а також усі підкаталоги та найкраще, не вимагає введення. Просто переконайтеся, що ви правильно призначили папку1 (безпечне репо) та папку2 (корисна репо).

@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%

І ось це люди!

Додайте до запланованих завдань і ніколи не озирайтеся.


-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
Пояснення вашого коду принесе користь не тільки запитувачу цього питання, але й майбутнім людям, які натрапляють на це в пошуку рішення тієї ж проблеми.
Джош Берджесс

3
У вас є кілька прапорів, які прямо суперечать іншим прапорам. /Sкопіює каталоги та підкаталоги, крім порожніх, а /Eкопіює каталоги та підкаталоги, включаючи порожні. /Qне відображає імена файлів під час копіювання, в той час як під час копіювання /Fвідображаються повні імена файлів джерела та призначення.
SomethingDark

-2

Я написав .bat файл, щоб скопіювати та вставити файл у тимчасову папку, зробити його поштовим і перенести у точку монтування smb.

    @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%"
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.