Показать полную графическую версию : помогите сделать батник копирования папки
Нужно копировать папку с важными файлами из диска С:\ на D:\, потом после завершения копировал эту же папку с диска С:\ на комп локальной сети \\komp\. Нада сделать так чтобы с именем папки была дата. Заранее благодарен.
xcopy "папка откуда копируйте" "папка куда копируйте" /y
sleep 5
xcopy "папка откуда копируйте" "путь к пк куда надо скопировать" /y
чтобы использовать sleep скачайте (http://wiki.oszone.net/images/5/56/Sleep.zip) и скопируйте в C:\WINDOWS\system32
подробнее узнать о команде xcopy можно набрав в командной строке xcopy /?
п.с. пользуйтесь поиском по форуму такой вопрос задавался не один раз.
avolkov2009
30-09-2009, 17:04
Смотрите прикрепленный файл
Пример вызова: extcopy.cmd c:\docs d:\docs \\server\archive\docs
В примере содержимое c:\docs будет скопировано в каталоги d:\docs-yyyymmdd и \\server\archive\docs-yyyymmdd
Удачи :)
megaloman
03-10-2009, 19:54
Вот батник, который копирует указанную директорию (в переменной InDir) по двум указанным путям (в переменных Double1 и Double2), при этом добавляем впереди имени исходной директории дату. У меня в системе формат даты дд.мм.гггг. Я преобразую дату в строку ггггммдд чтобы легче сортировать при просмотре директории по имени. Set InDir="C:\Мои сцены 3D MAX"
Set Double1="D:"
Set Double2="\\Всякие Копии"
rem Set DT=%Date%
Set DT=%Date:~6,4%%Date:~3,2%%Date:~0,2%
Call :CopyDir %InDir% %Double1% %Double2%
GoTo End
:CopyDir
Set Otkuda="%~1\*.*"
Set Kuda1=%~1
Set Kuda1="%~2\%DT%_%Kuda1:~3,1000%\"
Set Kuda2=%~1
Set Kuda2="%~3\%DT%_%Kuda2:~3,1000%\"
xcopy %Otkuda% %Kuda1% /Y /S
xcopy %Otkuda% %Kuda2% /Y /S
:End
megaloman
а как еще в конце в RAR забить?
avolkov2009
08-10-2009, 10:44
а как еще в конце в RAR забить? »
В смысле? Нужно копии упаковывать в архив?
megaloman
08-10-2009, 11:16
Не вижу смысла усложнять жизнь. Если надо упакованные копии, зачем копировать куда-то исходную директорию. Давайте сразу будем создавать где нужно архив. И быстрее и удобнее.
Set InDir="C:\Всякая дребедень"
Set Double1="D:\Всякая дребедень.Copy"
Set Double2="\\Всякие Копии\Всякая дребедень.Copy"
rem Set DT=%Date%
Set DT=%Date:~6,4%%Date:~3,2%%Date:~0,2%
Call :CopyDir %InDir% %Double1% %Double2%
GoTo End
:CopyDir
Set Otkuda="%~1\*.*"
"%ProgramFiles%\Winrar\Winrar.exe" a -r "%~2\%DT%" %Otkuda%
"%ProgramFiles%\Winrar\Winrar.exe" a -r "%~3\%DT%" %Otkuda%
:End
В папках, созданных для копий, будет набор rar-файлов с именами, совпадающими с датой создания. Что еще нужно? Вместо второй упаковки исходной директории логично написать копирование первого созданного архива - быстрее получится.
copy "%~2\%DT%.rar" "%~3\"
Примечание - Я предположил, что WinRar установлен стандартным образом в систнмную папку \Program Files\Winrar\
avolkov2009
08-10-2009, 11:45
Вот мой скрипт для ежедневного копирования.
Архивчики раскладываются в дерево каталогов вида ГГГГ\ММ\, использую консольный 7zip.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.