Вход/Регистрация
Windows Script Host для Windows 2000/XP
вернуться

Попов Андрей Викторович

Шрифт:

function CheckPath {

 var FSO;

 //Создаем объект FileSystemObject

 FSO=new ActiveXObject("Scripting.FileSystemObject");

 //Проверяем доступность исходного каталога

 if (!FSO.FolderExists(SFrom)) { //Исходный каталог не существует

//Формируем строку с информацией об ошибке

SErrMess="Не найден исходный каталог "+SFrom;

return false;

 }

 //Проверяем доступность каталога для архивирования

 if (!FSO.FolderExists(SArch)) {

//Каталог для архивирования не существует

//Формируем строку с информацией об ошибке

SErrMess="Не найден каталог для хранения архивов "+SArch;

return false;

 }

 //Если оба каталога существуют, возвращаем true

 return true;

}

Основной функцией, осуществляющей архивирование файлов, является

FilesToArchiv
. В самом начале этой функции с помощью вызова
CheckPath
проверяется наличие рабочих каталогов. Если хотя бы один из каталогов не существует, то выполнение
FilesToArchiv
прерывается и возвращается значение
false
:

if (!CheckPath) return false;

Затем создаются экземпляры объектов

FileSystemObject
и
WshShell
:

//Создаем объект FileSystemObject

FSO = new ActiveXObject("Scripting. FileSystemObject");

//Создаем объект WshShell

WshShell = new ActiveXObject("WScript.Shell");

Имя файла-архива формируется следующим образом:

//Формируем имя файла-архива

SFName=SPref+NowIs+".arj";

Архиватор arj.exe мы будем запускать в отдельном командном окне, которое закроется после выполнения этой программы. Для этого мы сформируем командную строку

SComLine
, с помощью которой запускается вторичная копия командного процессора (путь к командному процессору хранится в переменной среды
%COMSPEC%
, вторичная копия вызывается с помощью ключа
/с
):

SComLine="%COMSPEC% /с ";

Синтаксис запуска arj.exe для создания архивного файла имеет следующий вид:

arj.exe a Archiv Files

где

Archiv
— путь к файлу-архиву,
Files
— имена добавляемых в архив файлов (здесь можно использовать шаблонные символы ? и *). Поэтому мы добавим нужные компоненты к командной строке
SComLine
:

SComLine+=" arj.exe a "+FSO.BuildPath(SArch, SFName) + " ";

SComLine+= FSO.BuildPath(SFrom, SMask);

Команды, записанные в

SComLine
, запускаются с помощью метода
Run
объекта
WshShell
; код возврата сохраняется в переменной
RetCode
:

RetCode = WshShell.Run(SComLine, 1, true);

Равенство нулю переменной

RetCode
означает, что архивирование выполнено без ошибок — в этом случае функция
FilesToArchiv
возвращает
true
. Если же при выполнении arj.exe возникла ошибка (переменная
RetCode
не равна нулю), то ее код вносится в сообщение об ошибке (свойство
SErrMess
):

//Анализируем код возврата для arj.exe

if (0==RetCode)

 //Выполнение arj.exe завершилось без ошибок

 return true;

else {

 //Формируем строку с информацией об ошибке

 SErrMess="Ошибка ARJ.EXE! Код "+RetCode;

 return false;

}
 

Полностью содержимое файла DateArc.wsc приведено в листинге 10.4.

Листинг 10.4. СОМ-объект
DateArc.WSC
(JScript)

<?xml version="1.0" encoding="windows-1251"?>

<component>

 <registration description="DateArc" progid="DateArc.WSC"

version="1.00"

classid="{424ac2bc-5732-4dea-be17-0211af99cd79}">

 <script language="JScript">

<![CDATA[

var WshShell;

//Инициализируем константы для диалоговых окон

var vbInformation=64;

  • Читать дальше
  • 1
  • ...
  • 177
  • 178
  • 179
  • 180
  • 181
  • 182
  • 183
  • 184
  • 185
  • 186
  • 187
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: