Задача: есть несколько ресторанов, данные из которых закрываются в единую накопительную базу.
Каждый ресторан присылает свой ENDDAY в центральный офис.
Расширения у ENDDAY нет.
В центральном офисе эти данные попадают каждый в свою папку с именем ресторана, которому принадлежат.
Соответственно, надо запускать закрытие дня.
Вариант в лоб: сделать такое количество копий папки RK6, сколько надо, копировать каждый ENDDAY в свою копию и запускать оттуда append32.
Плохо то, что фактически лишаемся встроенного бэкапа: при сколь-либо большом количестве ресторанов при каждом закрытии будет создаваться копия, которая большого смысла не несет; количество возможных бэкапов надо ставить большое; образуется масса папок, которые помимо прочего занимают место. Можно делать бэкап только в первой папке, а остальных - отключить, но если этот ресторан перестанет работать (совсем), то бэкапы надо не забыть включить в следующей папке; кроме того, я, честно говоря, не проверял, создается ли резервная копия, если данных в ENDDAY нет - скорее всего, не создается, а значит, если данные из первого ресторана перестанут приходить, то бэкапа тоже не будет. Значит, в идеале надо тогда делать бэкап сторонними средствами.
Ну и при добавлении нового ресторана надо делать новую копию.
В общем, моя душа запротивилась такому подходу. Написал скрипт, который и предлагаю осмотреть и, может быть, покритиковать.
setlocal enabledelayedexpansion
if not exist c:\endday (md c:\endday)
set i=1
for /D %%d in (C:\dropbox\*) do (
if not exist c:\backup\%%~nxd (md c:\backup\%%~nxd)
for /D %%f in (%%d\*) do (
xcopy %%f C:\backup\%%~nxd\%%~nxf /e /v /c /i /f /g /h /r /y /z
rename %%f %%~nf.!i!
move %%f.!i! C:\endday\
)
set /a i=i+1
)
Смысл в следующем. Все данные ENDDAY изначально кладутся в папку c:\dropbox\название_ресторана\.
Скрипт вначале копирует данные в папку backup, причем если ресторан новый, то в папке backup создается папка для этого ресторана.
Далее данные переименовываются по шаблону из DD-MM-YY в DD-MM-YY.X, где X - число по порядку, от 1 и до сколько ресторанов будет.
Переименованные папки кидаются в общую папку c:\endday, так как расширение для каждого ресторана будет свое, то данные не затрутся.
Остается только запустить один раз append32, нацеленный на эту папку.