Программка BatchRun может пригодится для выполнения часто повторяющийся последовательностей простых операций типа копирования файлов или запуска программ. По существу, она выполняет функции обыкновенного командного файла (*.bat), но делает она это более "красиво" - в виндосовском окне с индикатором хода выполнения, а не в черном окне сессии ДОС, как обыкновенный bat-файл.

Последовательность выполняемых программой команд задается при помощи текстового файла. Имя этого файла можно передать как параметр командной строки при запуске программы. Например:
BatchRun Co_Copy.txt
запускает программу на выполнение последовательности команд, записанных в файле Co_Copy.txt.
Если имя файла в командной строке не задано, то по умолчанию, читается файл с именем BachRun.txt в текущем каталоге.
Во время своей работы программа выводит индикатор хода выполнения задания - progress bar. Так как программка очень простая и "не умеет" точно оценивать объем выполненной работы, то для индикации хода выполнения используется просто число выполненных строк файла-задания.
Строка файла-задания, в первой позиции которого стоит символ "!", ";" или "rem" - считается комментарием и не выполняется.
Программка "понимает" один единственный макрос %week%. Если она находит в выполняемой строке такую последовательность символов (%week%), то она перед выполнением строки заменяет ее на номер дня недели (число от 1 до 7). Это было сделано для того, чтобы автоматически копировать файлы в разные подкаталоги в зависимости от дня недели.
Программа "выполняет" своими средствами только две команды: "copy" и "run".
Остальные командные строки выполняются без "вникания" в их структуру при помощи функции ShellExecute Windows API, без ожидания завершения выполнения.
Формат строки для команды "copy" такой:
copy SourceFile TargetFile
причем, в качестве разделителя допустим только
один символ пробела. Разумеется, что эта
команда будет копировать файл SourceFile в
файл TargetFile. Никакие символы *,? в именах
файлов не допустимы. TargetFile - это именно
имя файла, а не каталога.
Вы можете использовать вместо "встроенной"
команды copy, любые "внешние"
программы, например xcopy, которая
понимает множество параметров.
Формат строки для команды "run" такой:
run ProgrammFile
Естественно, эта команда "запускает" на выполнение ProgrammFile.
Вот пример командного файла, который копирует несколько файлов с сервера и в конце запускает обновленную программу:
; Обновление файлов системы
"Компаньон"
copy \\Server\Co2001\Co2001.exe c:\Co2001\Co2001.exe
copy \\Server\Co2001\C_Ainv.dll c:\Co2001\C_Ainv.dll
copy \\Server\Co2001\C_Prod.dll c:\Co2001\C_Prod.dll
. . . . .
copy \\Server\Co2001\C_Zak.dll c:\Co2001\C_Zak.dll
run c:\Co2001\Co2001.exe
Вот еще пример командного файла , который производит резервное копирование файлов базы данных, причем каждый день недели копирование производится в другой каталог:
; Резервное копирование базы данных
xcopy w:\co2001\dat\Store.dat z:\Arc\%week% /D
xcopy w:\co2001\dat\Price.dat z:\Arc\%week% /D
xcopy w:\co2001\dat\Comp.dat z:\Arc\%week% /D
. . . . .
Программка использует несколько параметров
настройки из файла BatchRun.ini
Вот пример такого файла:
[MISK]
DailyFlag=1
LastDate=28.12.01
LastTime=16:55
Caption=Обновление файлов системы Компаньон
где:
DailyFlag - Это признак того, что программа
должна выполнять свое задание только один раз в
день.
LastDate - Дата последнего выполнения
программы в формате дд.мм.гг
LastTime - Время последнего выполнения
программы в формате чч:мм
WinCaption - Строка, которая выводится в
заголовке окна программы во время ее работы
Программа распространяется как sourseware с исходным текстом на Clarion for Windows.
В комплект поставки программы не включены файлы библиотеки периода выполнения Clarion C5*.dll, которые нужны для ее работы. Если у Вас нет этих файлов, то их можно скачать со страницы "Загрузить" нашего сайта http://pisoft.da.ru
Буду благодарен за любые замечания и
предложения, которые можно адресовать: Гундорову
Сергею Михайловичу:
e-mail: gsm@pisoft.ru
WWW: http://pisoft.da.ru
http://psoft.narod.ru
ICQ: 66745758