![]() |
Копирование одной папки\файла в разные папки с контролем заполняемости
Здравствуйте. Задача такая: Есть папка\файл которую нужно скопировать в архивную папку, но архивных папок 2-е, и они на разных дисках. Я могу сделать такую копию, но папка будет копироваться сразу в 2-е папки, а мне нужно, что бы папка копировалась с начало в одну папку, а при заполнении её копировалось во второю, при этом работал скрипт по контролю количества папок, и старые удалялись.
Пример того что у меня получилось: setlocal enableextensions enabledelayedexpansion set sFolder=P:\копии set eFolder=P:\"новая папка1" set /a iCount = 2 for %%d in (P:\копии\%time:~0,2%.%time:~3,2%,O:\копии\%time:~0,2%.%time:~3,2%) do echo d | xcopy /E /H /R /K /Y /D /C /Q %eFolder% %%d for /f "skip=%iCount% usebackq delims=" %%i in (`dir /b /a:d /o:-d /t:w "%sFolder%"`) do rd /s /q "%sFolder%\%%~i" for /f "skip=%iCount% usebackq delims=" %%i in (`dir /b /a:d /o:-d /t:w "O:\копии"`) do rd /s /q "O:\копии\%%~i" endlocal exit /b 0 При этом они копируются сразу в 2-е папки, и контроль заполнения тоже одновременно в 2-х папках, т.е. он не берёт с начало первую паку, копирует в неё 2-е папки, потом во вторую ещё 2-е папки, а потом опять в 1-ю. Можно сделать и на основе robocopy. |
михаилНезнайка, В архивные папки копируются папки? Их имена разные или Вы переименовываете их при копировании? По какому принципу создаются их имена?
Сначала Вы делаете копии в первую папку. Она заполнилась (?), копируем во вторую, и она заполнилась. Что дальше? В первую папку -по какому принципу она очищается? И вообще, в чем смысл такого копирования? Почему бы не копировать папки попеременно в первый и второй архив, тогда на обоих дисках будем иметь сравнительно свежие копии, а не так, как Вы предлагаете: на одном диске свежие, на другом заведомое старье |
"В архивные папки копируются папки?" Да копируются папки.
"Их имена разные или Вы переименовываете их при копировании?" Можно предопределить сразу их имена, но в моём случае они создаются при копировании "По какому принципу создаются их имена?" Это не имеет значения, можно задать имена сразу, либо как у меня, называются при копировании "время их создания" "Сначала Вы делаете копии в первую папку. Она заполнилась (?), копируем во вторую, и она заполнилась. Что дальше? В первую папку -по какому принципу она очищается?" Дальше по логике моего скрипта, он удаляет самую струю копию (или в первой папке или во второй) и закидывает туда копию сделанную сегодня. "И вообще, в чем смысл такого копирования?" Смысл в том, что есть два логических диска по 400Гб, и нужно копировать архив в эти папки. Но мне не нужно создавать копии сразу в двух папках, а сначала копировалось в одну, потом при заполнении во вторую, потом при заполнении опять в первую. Это для того, что бы не объединять эти два логических диска в один диск в 800Гб. |
Принцип примерно такой:
Powershell: Код:
$sourceFolder = "E:\ISO\2019" |
Запускать не чаще 1 раза в 10 мин
Код:
@Echo Off |
Спасибо. Всё сработало.
|
Время: 20:55. |
Время: 20:55.
© OSzone.net 2001-