Программа BatchRun

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

batchrun.gif (7287 bytes)

Последовательность выполняемых программой команд задается при помощи текстового файла. Имя этого файла можно передать как параметр командной строки при запуске программы. Например:

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.

Загрузить программу BatchRun

В комплект поставки программы не включены файлы библиотеки периода выполнения Clarion C5*.dll, которые нужны для ее работы. Если у Вас нет этих файлов, то их можно скачать со страницы "Загрузить" нашего сайта http://pisoft.da.ru


Буду благодарен за любые замечания и предложения, которые можно адресовать: Гундорову Сергею Михайловичу:

e-mail:   gsm@pisoft.ru  
WWW: http://pisoft.da.ru   http://psoft.narod.ru
ICQ:     66745758

 

 

Hosted by uCoz