Ответы:
xcopy.exe
это решение здесь. Он встроен в Windows.
xcopy /s c:\Folder1 d:\Folder2
Вы можете найти больше вариантов на http://www.computerhope.com/xcopyhlp.htm
xcopy
устарела и выдает ошибку "Недостаточно памяти", если имя файла превышает 254 символа. robocopy
Вместо этого используйте : robocopy C:\Folder1 D:\Folder2 /COPYALL /E
en.wikipedia.org/wiki/Robocopy
Если у вас есть robocopy,
robocopy C:\Folder1 D:\Folder2 /COPYALL /E
в противном случае,
xcopy /e /v C:\Folder1 D:\Folder2
"C:\My Folder\"
вы можете получить неприятный сюрприз. Я рекомендую очень внимательно прочитать эту страницу SS64. Для полного ознакомления с кроличьей ноской «что является escape-символом в CMD» см. « Экранирование двойных кавычек в пакетном сценарии» .
Я вижу много ответов, предлагающих использовать xcopy. Но в этом нет необходимости. Поскольку в вопросе четко упоминается, что автор хочет, чтобы СОДЕРЖАНИЕ В ПАПКЕ, а не сама папка, копировалась, в этом случае мы можем -:
copy "C:\Folder1" *.* "D:\Folder2"
Это все xcopy
можно использовать, если вC:\Folder1
md D:\Folder2
copy
команда (командная строка Windows 10) сообщает мне, что синтаксис неверен. Следующее будет правильным синтаксисом:copy "C:\Folder1\*.*" "D:\Folder2"
RoboCopy у меня не работал, и здесь есть несколько хороших решений, но никто не объяснил переключатели XCopy и то, что они делают. Также вам нужны кавычки, если в вашем пути есть пробелы.
xcopy / i / e "C: \ temp \ folder 1" "C: \ temp \ folder 2"
Вот документация от Microsoft:
/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)
@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
На моем ПК для xcopy и robocopy также нужен путь к ним, то есть C: \ Windows \ System32 \ xcopy.exe
Поэтому я использую просто «копировать»: copy / y .... \ Folder1 \ File.txt .... \ Folder2 \
Вот решение с robocopy, которое копирует содержимое Folder1 в Folder2, проходя через все подкаталоги и автоматически перезаписывая файлы с тем же именем:
robocopy C:\Folder1 C:\Folder2 /COPYALL /E /IS /IT
Вот:
/COPYALL
копирует всю информацию о файлах
/E
копирует подкаталоги, включая пустые каталоги,
/IS
включает те же файлы,
/IT
включает измененные файлы с тем же именем
Дополнительные параметры см. В официальной документации: https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/robocopy
Примечание : из-за аргумента может потребоваться запустить команду от имени администратора /COPYALL
. Если не можете: просто избавьтесь от этого.
К вашему сведению ... если вы используете TortoiseSVN и хотите создать простой командный файл для периодического копирования (или зеркалирования каталогов) целых репозиториев в "безопасное" место, то это конкретный код, который вы, возможно, захотите использовать. Он копирует скрытые каталоги / файлы, поддерживает атрибуты только для чтения и все подкаталоги и, что самое главное, не запрашивает ввод. Просто убедитесь, что вы правильно назначаете folder1 (безопасное репо) и folder2 (используемое репо).
@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%
Вот и все, ребята!
Добавьте к своим запланированным задачам и никогда не оглядывайтесь назад.
@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
/S
копирует каталоги и подкаталоги, кроме пустых, при этом /E
копирует каталоги и подкаталоги, включая пустые. /Q
не отображает имена файлов при копировании, а /F
отображает полные имена исходного и целевого файлов при копировании.
Я написал файл .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%"