Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Резервное копирование

Ответить
Настройки темы
CMD/BAT - [решено] Резервное копирование

Аватара для Sisin

Старожил


Сообщения: 345
Благодарности: 9

Профиль | Отправить PM | Цитировать


Подскажите, пожалуйста, как сделать такой CMD/BAT:

На компьютере на диске С есть папки, которые надо резервировать/копировать на диск D.
Пример: При запуске CMD/BAT файла папка C:\Folder 1 копируется в папку D:\Folder 2\07.02.15\Folder 1
07.02.15 - папка с названием сегодняшней даты

Но если надо скопировать папку C:\Folder 1\Folder 11\Folder 111\Folder 1111, то Folder 1111 копируется с полным путем относительно диска С - D:\Folder 2\07.02.15\Folder 1\Folder 11\Folder 111\Folder 1111

Отправлено: 16:42, 07-02-2015

 

Ветеран


Contributor


Сообщения: 2728
Благодарности: 1697

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
@Echo Off

Set "From=C:\Folder 1"
Set "To=D:\Folder 2"

Call :DirCopy "%From%\" "%To%\"
GoTo :Eof

:DirCopy 

Set "Dt=%Date:~0,2%.%Date:~3,2%.%Date:~8,2%"
Xcopy /E "%~1*.*" "%~2%Dt%%~p1"
Код: Выделить весь код
@Echo Off

Set "To=E:\Folder 2"

FOR %%i IN ("C:\Folder 1" "C:\Folder A" "C:\Folder B" "C:\Folder C") DO (
	Call :DirCopy "%%~i\" "%To%\"
)
GoTo :Eof

:DirCopy

Set "Dt=%Date:~0,2%.%Date:~3,2%.%Date:~8,2%"
Xcopy /E "%~1*.*" "%~2%Dt%%~p1"

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 07-02-2015 в 22:27.

Это сообщение посчитали полезным следующие участники:

Отправлено: 22:10, 07-02-2015 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Sisin

Старожил


Сообщения: 345
Благодарности: 9

Профиль | Отправить PM | Цитировать


Что-то не работает ни один из вариантов.

Отправлено: 23:02, 07-02-2015 | #3


Аватара для Sisin

Старожил


Сообщения: 345
Благодарности: 9

Профиль | Отправить PM | Цитировать


Цитата megaloman:
Как это проявляется. Какие сообщения при этом?
Продемонстрируйте батник с Вашими реальными путями.
В именах есть русские буквы? Если есть, в какой кодировке написан батник? »
Пардон, все работает. Текстовый редактор закосячил все.

Отправлено: 23:49, 07-02-2015 | #4


Аватара для Sisin

Старожил


Сообщения: 345
Благодарности: 9

Профиль | Отправить PM | Цитировать


Последний вопрос:

Как сделать, чтобы в строчке FOR %%i IN ("C:\Folder 1" "C:\Folder A" "C:\Folder B" "C:\Folder C") DO (
пути папок можно было записывать в столбик:

"C:\Folder 1"
"C:\Folder A"
"C:\Folder B"
"C:\Folder C"

Я правильно понимаю, что папки с кириллицей в пути не копируются???

Отправлено: 00:06, 08-02-2015 | #5


Ветеран


Сообщения: 874
Благодарности: 575

Профиль | Отправить PM | Цитировать


Цитата Sisin:
Как сделать, чтобы в строчке FOR %%i IN ("C:\Folder 1" "C:\Folder A" "C:\Folder B" "C:\Folder C") DO (
пути папок можно было записывать в столбик »

Код: Выделить весь код
FOR %%i IN (
"C:\Folder 1"
"C:\Folder A"
"C:\Folder B"
"C:\Folder C"
) DO (


Цитата Sisin:
Я правильно понимаю, что папки с кириллицей в пути не копируются??? »

Сохраните пакетный файл в кодировке OEM-866 (DOS).
Это сообщение посчитали полезным следующие участники:

Отправлено: 00:48, 08-02-2015 | #6


Ветеран


Contributor


Сообщения: 2728
Благодарности: 1697

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
@Echo Off

Call :DirCopy "C:\Folder 1\" "D:\Folder 2\"
Call :DirCopy "C:\Folder A\" "D:\Folder 2\"
Call :DirCopy "C:\Folder B\" "D:\Folder 2\"
Call :DirCopy "C:\Folder C\" "D:\Folder 2\"

:DirCopy

Set "Dt=%Date:~0,2%.%Date:~3,2%.%Date:~8,2%"
Xcopy /E /Y "%~1*.*" "%~2%Dt%%~p1"
Цитата:
Я правильно понимаю, что папки с кириллицей в пути не копируются???
-неправильно.
Батник следует записывать в ДОС-кодировке (866)

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.

Это сообщение посчитали полезным следующие участники:

Отправлено: 00:54, 08-02-2015 | #7

mwz mwz вне форума

Аватара для mwz

Ушел из жизни


Сообщения: 8595
Благодарности: 2127

Профиль | Сайт | Отправить PM | Цитировать


Цитата Sisin:
Я правильно понимаю, что папки с кириллицей в пути не копируются??? »
Код: Выделить весь код
@echo off
CHCP 1251
<и далее по тексту>
не пробовали?

PS
Или – как сказал megaloman

-------
Mikhail Zhilin

Это сообщение посчитали полезным следующие участники:

Отправлено: 01:01, 08-02-2015 | #8


Аватара для Sisin

Старожил


Сообщения: 345
Благодарности: 9

Профиль | Отправить PM | Цитировать


Еще один нюанс появился:
Как сделать так, чтобы если папка уже скопирована в D:\Folder 2, но надо еще раз ее скопировать - папка бы сначала удалялась из D:\Folder 2, а уже потом копировалась?

Пример: папка C:\Folder 1\DOC копируется в D:\Folder 2 - получаем D:\Folder 2\090215\DOC. В этот же день надо скопировать папку DOC еще раз, но предварительно удалив DOC из D:\Folder 2\090215, чтобы не получилось так, что в папке DOC вместе с нужными файлами находятся и ненужные от предыдущей копии.

И главное, чтобы это все делалось бы без подтверждений.

Отправлено: 10:35, 09-02-2015 | #9


Ветеран


Contributor


Сообщения: 2728
Благодарности: 1697

Профиль | Отправить PM | Цитировать


Sisin, Перед Xcopy
Код: Выделить весь код
If Exist "%~2%Dt%%~p1" Rd "%~2%Dt%%~p1" /s /q

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.

Это сообщение посчитали полезным следующие участники:

Отправлено: 12:50, 09-02-2015 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Резервное копирование

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
2008 R2 - Резервное копирование legionkg Windows Server 2008/2008 R2 13 04-10-2018 09:10
Резервное копирование skynet88 Хочу все знать 1 27-11-2014 15:27
резервное копирование RED_LINE Защита компьютерных систем 5 22-10-2013 20:51
Debian/Ubuntu - Резервное копирование. Tankistspb Общий по Linux 2 25-02-2008 11:56
Резервное копирование!! Forest_G Хочу все знать 2 09-06-2006 17:36




 
Переход