Показать полную графическую версию : Копирование файлов по дате
Fantastish
04-12-2015, 17:59
Доброго дня, знаний в бат скриптах почти ноль, прошу помощи разобраться в срипте, раньше все работало без проблем на 2008, переделал сервер на 2012 r2 и не пашет
@echo off
::Введите ключ условий поиска даты:
::w (write) - по дате модификации
::c (create) - по дате создания
set sortkey=c
::введите маску для искомых файлов
set mask=*.TIB
::введите исходную папку
set src=D:\Backup\SM_base
::введите целевую папку
set dest=W:\1c
for /f "tokens=1-3*" %%a in ('dir "%src%\%mask%" /a-d /-c /t:%sortkey%') do (
if %%a==%date% (>nul copy /y "%src%\%%d" "%dest%" & echo %%d)
)
есть начальная и конечная папка, требуется копировать тока за предыдущий(прошлый) день файл архива
спасибо
А как именно не работает? Сильно велика вероятность, что скрипт будет достаточно запустить от имени администратора, 2012r2 любит такую фигню...
Fantastish
04-12-2015, 18:37
строка запущенная от админа echo on
D:\Backup\SM_base>for /F "tokens=1-3*" %a in ('dir "D:\Backup\SM_base\*.TIB" /a-
d /-c /t:c') do (if %a == 04.12.2015 (copy /y "D:\Backup\SM_base\%d" "W:\1c" 1>
nul & echo %d ) )
D:\Backup\SM_base>(if Том == 04.12.2015 (copy /y "D:\Backup\SM_base\D не имеет м
етки." "W:\1c" 1>nul & echo D не имеет метки. ) )
D:\Backup\SM_base>(if Серийный == 04.12.2015 (copy /y "D:\Backup\SM_base\BA2C-9F
BC" "W:\1c" 1>nul & echo BA2C-9FBC ) )
D:\Backup\SM_base>(if Содержимое == 04.12.2015 (copy /y "D:\Backup\SM_base\" "W:
\1c" 1>nul & echo ) )
D:\Backup\SM_base>(if 02.12.2015 == 04.12.2015 (copy /y "D:\Backup\SM_base\1c_ba
se__2015_12_02_23_00_16_954F.TIB" "W:\1c" 1>nul & echo 1c_base__2015_12_02_23_
00_16_954F.TIB ) )
D:\Backup\SM_base>(if 03.12.2015 == 04.12.2015 (copy /y "D:\Backup\SM_base\1c_ba
se__2015_12_02_23_00_16_954F2.TIB" "W:\1c" 1>nul & echo 1c_base__2015_12_02_23
_00_16_954F2.TIB ) )
D:\Backup\SM_base>(if 2 == 04.12.2015 (copy /y "D:\Backup\SM_base\байт" "W:\1c"
1>nul & echo байт ) )
D:\Backup\SM_base>(if 0 == 04.12.2015 (copy /y "D:\Backup\SM_base\байт свободно"
"W:\1c" 1>nul & echo байт свободно ) )
и все файл не копируется
W:\ диск это сетевая шара
в наличии уже два файла бэкапа
02.12.2015 == 04.12.2015 »
03.12.2015 == 04.12.2015 »
И в чем проблема?
Fantastish
04-12-2015, 22:17
не копирует
Fantastish, как минимум, Вы забыли при переносе параметр /b у команды dir.
Fantastish
04-12-2015, 23:44
так изначально то скрипт работал и подскажите куда его запихнуть
в принципе если есть вариант написания другого скрипта буду благодарен
з.ы. разобрался оказывается на нижнее подчеркивание реагировал скрипт
изменил папку все стало работать
Fantastish
07-12-2015, 07:26
хотя нет снова перестал копировать, не пойму от чего зависит это
Fantastish
08-12-2015, 12:11
есть варианты?
протестировал на 7ке х64 все ок
Fantastish
09-12-2015, 12:36
так и не могу понять почему не хочет копировать 8/
какие то не понятные чудеса, убрал параметр /b все стало копироваться
Прошу помощи написать батник. Задача копировать новые или изменённые файлы со всеми расширениями, а также папки со всех папок и подпапок, с одного дика на другой с датой изменения или создания к примеру дней за 20
DJ Mogarych
17-02-2023, 11:55
См. robocopy (https://winitpro.ru/index.php/2020/05/13/robocopy-sinxronizaciya-i-rezervnoe-kopirovanie-fajlov/)
DJ Mogarych, спасибо большое!
раньше все работало без проблем на 2008, переделал сервер на 2012 r2 и не пашет »
2008 русский, а 2012 английский или наоборот?)
тока за предыдущий(прошлый) »
где это задается из скрипта не понятно... скрипт что, в конце суток запускается ?)
Fantastish, используйте robocopy
/MAXAGE:n :: MAXimum file AGE - exclude files older than n days/date.
/MINAGE:n :: MINimum file AGE - exclude files newer than n days/date.
Опиум, некропостинг? :)
Не прошло и десяти лет...
Зеркалю содержимое папки с диска на диск@echo off
set date_=%date:/=-%
set source=E:\E-DISK
set dest=R:\E-DISK
mkdir %dest%
robocopy "%source%" "%dest%" /MIR /COPYALL /Z /B /R:3 /W:1
@echo on
так работает, но нужно зеркалить содердимое диска E в R:\E-DISK
@echo off
set date_=%date:/=-%
set source=E:\
set dest=R:\E-DISK
mkdir %dest%
robocopy "%source%" "%dest%" /MIR /COPYALL /Z /B /R:3 /W:1
@echo on
так не получается.. Поправьте пожалуйста
но нужно зеркалить содердимое диска E в R:\E-DISK »
@echo off
rem set date_=%date:/=-% не используется
set source=E:\
set dest="R:\E-DISK"
rem mkdir %dest% не нужна
robocopy %source% %dest% /MIR /COPYALL /Z /B /R:3 /W:1
raddy, Спасибо большое! Работает,но после копирования папка E-DISK становится срытой
@echo off
set source=E:\
set dest=R:\E-DISK
robocopy %source% %dest% /MIR /COPYALL /Z /B /R:3 /W:1 /REG /XD $RECYCLE.BIN /XJD /XD "System Volume Information" /XJD
attrib -h "R:\E-DISK"
@echo on
и параметр
attrib -h "R:\E-DISK" не помогает
но после копирования папка E-DISK становится срытой »
В какой системе?
@echo off
set source=E:\
set dest=R:\E-DISK
robocopy %source% %dest% /MIR /COPYALL /Z /B /R:3 /W:1 /REG /XD "$RECYCLE.BIN" "System Volume Information"
rem /xjd убрано, т.к. /XJ :: исключить точки соединения. (по умолчанию обычно включаются).
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.