CMD/BAT - [решено] Резервное копирование

Ответить
Аватара пользователя
Sisin

CMD/BAT - [решено] Резервное копирование

Сообщение Sisin »

Подскажите, пожалуйста, как сделать такой 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
Аватара пользователя
megaloman

Re: CMD/BAT - [решено] Резервное копирование

Сообщение megaloman »

Код:

Код: Выделить всё

@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"
Аватара пользователя
Sisin

Re: CMD/BAT - [решено] Резервное копирование

Сообщение Sisin »

Что-то не работает ни один из вариантов.
Аватара пользователя
Sisin

Re: CMD/BAT - [решено] Резервное копирование

Сообщение Sisin »

Цитата megaloman:



Как это проявляется. Какие сообщения при этом?

Продемонстрируйте батник с Вашими реальными путями.

В именах есть русские буквы? Если есть, в какой кодировке написан батник?
»




Пардон, все работает. Текстовый редактор закосячил все.
Аватара пользователя
Sisin

Re: CMD/BAT - [решено] Резервное копирование

Сообщение Sisin »

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



Как сделать, чтобы в строчке 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"



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

Re: CMD/BAT - [решено] Резервное копирование

Сообщение Georgio »

Цитата Sisin:



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

пути папок можно было записывать в столбик
CMD/BAT - [решено] Резервное копирование








Код:

Код: Выделить всё

FOR %%i IN (
"C:\Folder 1"
"C:\Folder A"
"C:\Folder B"
"C:\Folder C"
) DO (






Цитата Sisin:



Я правильно понимаю, что папки с кириллицей в пути не копируются???
CMD/BAT - [решено] Резервное копирование






Сохраните пакетный файл в кодировке OEM-866[/i] (DOS).
Аватара пользователя
megaloman

Re: CMD/BAT - [решено] Резервное копирование

Сообщение megaloman »

Код:

Код: Выделить всё

@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)
Аватара пользователя
mwz

Re: CMD/BAT - [решено] Резервное копирование

Сообщение mwz »

Цитата Sisin:



Я правильно понимаю, что папки с кириллицей в пути не копируются???
CMD/BAT - [решено] Резервное копирование






Код:

Код: Выделить всё

@echo off
CHCP 1251

не пробовали?



PS

Или – как сказал megaloman
Аватара пользователя
Sisin

Re: CMD/BAT - [решено] Резервное копирование

Сообщение Sisin »

Еще один нюанс появился:

Как сделать так, чтобы если папка уже скопирована в 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 вместе с нужными файлами находятся и ненужные от предыдущей копии.



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

Re: CMD/BAT - [решено] Резервное копирование

Сообщение megaloman »

Sisin, Перед Xcopy



Код:

Код: Выделить всё

If Exist "%~2%Dt%%~p1" Rd "%~2%Dt%%~p1" /s /q
Ответить

Вернуться в «Скриптовые языки администрирования Windows»