Войти

Показать полную графическую версию : помогите сделать батник копирования папки


siz
30-09-2009, 06:10
Нужно копировать папку с важными файлами из диска С:\ на D:\, потом после завершения копировал эту же папку с диска С:\ на комп локальной сети \\komp\. Нада сделать так чтобы с именем папки была дата. Заранее благодарен.

xctr
30-09-2009, 10:58
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

seman
08-10-2009, 08:23
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