1

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

Доброго времени суток! Помогите пожалуйста решить одну задачу. Есть программа которая создает отчеты в некой папке "1" , каждый день в 6 утра появляются 4 файла отчета их нужно скопировать в другую папку по сети ( папка должна быть с датой предыдущего дня такого типа (дата\месяц\год). Например сегодня 27.07.2013 в 6 утра в папке "1" появятся 4 файла отчета за 26.07.2013 их нужно скопировать в созданную папку по сети с такой же датой 26.07.2013

Вот что примерно нашел

chcp 1251
echo off
cls

md \\SERVER-1\Obmen\%date:~6,4%.%date:~3,2%.%date:~0,2%
if not exist \\SERVER-1\Obmen\%date:~6,4%.%date:~3,2%.%date:~0,2% goto error5

xcopy D:\1 \\SERVER-1\Obmen\%date:~6,4%.%date:~3,2%.%date:~0,2% /y /e /z /c /h
goto exit

:exit

  • Таким образом  папка создается но с текущей датой (27.07.2013) а нужно на день раньше (26.07.2013)
    Файлы копируются все подряд

Нужно именно последние созданные 4 файла

так же нашел вот такой код отсюда

set dir1=[Путь к папке с файлами] set dir2=[Путь к папке для размещения копий] setlocal enabledelayedexpansion set /a num=0 set /a err=0 for /f "tokens=* delims=" %%i in ('dir /b /o:-d /t:W "%dir1%\*.*"') do ( set /a num+=1 if /i !num! leq [количество копируемых файлов] ( copy "%dir1%\%%i" "%dir2%\" > nul if errorlevel 1 (echo %%i >> errorslog.txt set /a err+=1 ) echo copy file...%%i) else ( echo skip file... %%i ) ) echo COUNT OF ERRORS: %err% pause

Описание кода: В квадратные скобки необходимо подставить реальные значения.
Директива setlocal enabledelayedexpansion включает режим отложенного расширения переменных, который позволяет сделать изменения счетчика num видимым внутри цикла (по умолчанию это не так).
Команда dir /b /o:-d /t:W "%dir1%\*.*" определяет порядок копирования файлов. В данном случае первым будет самый новый файл. При помощи других ключей команды dir можно задать другие условия.

Как быть, помогите