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

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

Ответить
Настройки темы
CMD/BAT - [решено] Бэкап с выбором определенных файлов

Новый участник


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

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


Добрый день!

Помогите пожалуйста решить задачу. Раньше батники не приходилось создавать.
Есть папка "archive" в ней есть папки "1", "2" и "3" в них есть файлы. Нужно создать бэкап всех папок, но в папке "3" нужен выборочный бэкап по дате создания, в папке много фалов за разные промежутки времени, необходимо выбирать файлы за последние три дня и делать их бэкап.
Спасибо!

Отправлено: 06:52, 26-07-2017

 

Ветеран


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

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


Куда? В каком виде и чем делать?

Отправлено: 07:58, 26-07-2017 | #2



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

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


Новый участник


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

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


Делать в другую папку. В виде новой папки с текущей датой. Я пробовал уже сделать

Set 1=C:\Users\SUEK\Desktop\archive
Set 2=C:\Users\SUEK\Desktop\new
If Exist "%2%\%date%\%Time:~0,2%_%Time:~3,2%\" MD "%2%\%date%\%Time:~0,2%%_%Time:~3,2%\"
XCOPY /E /F /H /R /K /Y /D "%1%\*" "%2%\%date%\%Time:~0,2%_%Time:~3,2%\"

Делает бэкап всех папок. Но в нужной подпапке сохраняет все файлы я не за последних 3 дня.

Отправлено: 08:32, 26-07-2017 | #3


Ветеран


Contributor


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

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


Dima42rus, В чём смысл задачи? Как часто это надо делать? Если каждый день, то почему за три дня?
Цитата У xcopy есть ключ:
/D:m-d-y Копирует файлы, измененные либо в указанный день, либо после.
Если дата не указана, копируются только те файлы,
которые новее в исходной папке.
Проблема, дату посчитать.
Цитата Не лучше ли использовать утилиту forfiles, если она присутствует у Вас в системе.:
FORFILES [/P <путь>] [/M <маска_поиска>] [/S]
[/C <команда>] [/D [+ | -] {dd.MM.yyyy | dd}]

/D <дата> Выбор файлов, у которых дата последнего изменения
больше или равна (+) либо меньше или равна
(-) указанной дате при использовании формата
"dd.MM.yyyy"; либо файлов, у которых дата последнего
изменения больше или равна (+)
текущей дате плюс "dd" дней либо меньше или
равна (-) текущей дате минус "dd" дней.
Допустимым числом дней "dd" является любое
число в диапазоне 0 - 32768.
"+" используется по умолчанию, если знак не указан.
Я бы всё-таки использовал архиватор, например, winrar со стандартными ключами.
Но, всё таки, сначала надо определиться, зачем это нужно. Какова система в хранении.
Тупо рисовать команды для копирования не очень интересно, надо видеть конечную цель.

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

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

Отправлено: 12:27, 26-07-2017 | #4


Ветеран


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

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


Угу. Утром — деньги, вечером — стулья Сначала определиться, затем — forfiles, robocopy, архиватор.

Отправлено: 13:07, 26-07-2017 | #5


Новый участник


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

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


megaloman, Спасибо за совет, воспользуюсь FORFILES.

Отправлено: 04:10, 27-07-2017 | #6


Ветеран


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

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


Dima42rus, лучше воспользуйтесь RoboCopy:
Цитата:
/MAXAGE:n :: Максимальный возраст файла - исключить файлы, возраст которых превышает n дней.
дабы не высчитывать дату.
Это сообщение посчитали полезным следующие участники:

Отправлено: 05:01, 27-07-2017 | #7


Новый участник


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

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


Iska, сделал через /MAXAGE:n, но этот параметр применяется ко всем папкам которые скопировались, а мне надо к определенной(только к одной). Именно эту функцию не удается реализовать

Отправлено: 05:53, 27-07-2017 | #8


Ветеран


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

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


Dima42rus, и не надо реализовывать.
Цитата Dima42rus:
Есть папка "archive" в ней есть папки "1", "2" и "3" в них есть файлы. Нужно создать бэкап всех папок, но в папке "3" нужен выборочный бэкап по дате создания, »
Разные условия — разные задания. Используйте три последовательных команды robocopy.exe. Для «1» и «2» без параметра /maxage, для «3» — с параметром. Наподобие:
Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

set sSourceFolder=C:\Мои проекты\0101\Source
set sDestFolder=C:\Мои проекты\0101\Destination

robocopy.exe "%sSourceFolder%\01" "%sDestFolder%\01" /e
robocopy.exe "%sSourceFolder%\02" "%sDestFolder%\02" /e
robocopy.exe "%sSourceFolder%\03" "%sDestFolder%\03" /e /maxage:3

endlocal
exit /b 0
Либо два задания с использованием исключений:
Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

set sSourceFolder=C:\Мои проекты\0101\Source
set sDestFolder=C:\Мои проекты\0101\Destination

robocopy.exe "%sSourceFolder%" "%sDestFolder%" /e /xd "%sSourceFolder%\03"
robocopy.exe "%sSourceFolder%" "%sDestFolder%" /e /xd "%sSourceFolder%\01" "%sSourceFolder%\02" /maxage:3

endlocal
exit /b 0
Каталоги «1», «2» и «3» в каталоге назначения предварительно создавать не требуется: если они отсутствуют — они будут созданы.
Это сообщение посчитали полезным следующие участники:

Отправлено: 06:25, 27-07-2017 | #9


Новый участник


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

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


Iska, Спасибо большое, то что мне нужно! Сделал, все работает, как надо!

Отправлено: 06:51, 27-07-2017 | #10



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Массовая замена определенных файлов в определенных папках CMD/BAT urabusu Скриптовые языки администрирования Windows 6 27-06-2019 21:06
VBS/WSH/JS - Архивация определенных файлов szo Скриптовые языки администрирования Windows 6 12-12-2014 18:55
CMD/BAT - [решено] Копирование определенных файлов LAKERS824 Скриптовые языки администрирования Windows 5 30-05-2014 08:35
Любой язык - [решено] удаление файлов определенных форматов DOCznet Скриптовые языки администрирования Windows 8 21-02-2014 01:50
Программа для удаления определенных файлов adam1983 Программное обеспечение Windows 3 04-06-2007 22:46




 
Переход