Войти

Показать полную графическую версию : Копирование файлов по дате


Страниц : [1] 2

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)
)

есть начальная и конечная папка, требуется копировать тока за предыдущий(прошлый) день файл архива
спасибо

Elven
04-12-2015, 18:06
А как именно не работает? Сильно велика вероятность, что скрипт будет достаточно запустить от имени администратора, 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:\ диск это сетевая шара
в наличии уже два файла бэкапа

Elven
04-12-2015, 19:56
02.12.2015 == 04.12.2015 »
03.12.2015 == 04.12.2015 »
И в чем проблема?

Fantastish
04-12-2015, 22:17
не копирует

Iska
04-12-2015, 23:22
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 все стало копироваться

VIS_36
17-02-2023, 11:30
Прошу помощи написать батник. Задача копировать новые или изменённые файлы со всеми расширениями, а также папки со всех папок и подпапок, с одного дика на другой с датой изменения или создания к примеру дней за 20

DJ Mogarych
17-02-2023, 11:55
См. robocopy (https://winitpro.ru/index.php/2020/05/13/robocopy-sinxronizaciya-i-rezervnoe-kopirovanie-fajlov/)

VIS_36
17-02-2023, 14:14
DJ Mogarych, спасибо большое!

Опиум
25-02-2023, 17:11
раньше все работало без проблем на 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.

YuS_2
25-02-2023, 17:32
Опиум, некропостинг? :)
Не прошло и десяти лет...

VIS_36
21-03-2023, 22:41
Зеркалю содержимое папки с диска на диск@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
так не получается.. Поправьте пожалуйста

raddy
22-03-2023, 00:45
но нужно зеркалить содердимое диска 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

VIS_36
22-03-2023, 09:01
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" не помогает

raddy
22-03-2023, 10:48
но после копирования папка E-DISK становится срытой »
В какой системе?

raddy
22-03-2023, 11:20
@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