Чтение онлайн

на главную - закладки

Жанры

Windows Script Host для Windows 2000/XP

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

Шрифт:

}

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

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;

function Register {

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

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

 WshShell.Popup("Компонент зарегистрирован в системе",0,

"Компонент для архивирования файлов",vbInformation);

}

function Unregister {

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

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

 WshShell.Popup("Компонент удален из системы",0,

"Компонент для архивирования файлов",vbInformation);

}

]]>

</script>

 </registration>

 <public>

<property name="SFrom">

<get/>

<put/>

</property>

<property name="SArch">

<get/>

<put/>

</property>

<property name="SPref">

<get/>

<put/>

</property>

<property name="SMask">

<get/>

<put/>

</property>

<property name="SErrMess">

<get/>

</property>

<method name="FilesToArchiv">

</method>

 </public>

 <script language="JScript">

<![CDATA[

var description = new DateArc;

//Конструктор объекта DateArc

function DateArc {

 //Объявляем свойства объекта DateArc

 this.get_SFrom = get_SFrom;

 this.put_SFrom = put_SFrom;

 this.get_SArch = get_SArch;

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

Годы странствий

Чулков Георгий Иванович
Документальная литература:
биографии и мемуары
6.25
рейтинг книги
Годы странствий

Жертва

Привалов Сергей
2. Звездный Бродяга
Фантастика:
боевая фантастика
космическая фантастика
рпг
попаданцы
6.25
рейтинг книги
Жертва

Под знаком Песца

Видум Инди
1. Под знаком Песца
Фантастика:
альтернативная история
аниме
5.00
рейтинг книги
Под знаком Песца

Наследник

Ищенко Геннадий Владимирович
4.00
рейтинг книги
Наследник

Полночная страсть

Кэмпбелл Анна
Любовные романы:
исторические любовные романы
8.80
рейтинг книги
Полночная страсть

Цикл романов "Целитель". Компиляция. Книги 1-17

Большаков Валерий Петрович
Целитель
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Цикл романов Целитель. Компиляция. Книги 1-17

Башня

Сафонов Дмитрий Геннадьевич
1. Роман-катастрофа
Детективы:
триллеры
8.50
рейтинг книги
Башня

На границе империй. Том 8

INDIGO
12. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 8

Об идолах и идеалах

Ильенков Эвальд Васильевич
Научно-образовательная:
философия
6.25
рейтинг книги
Об идолах и идеалах

Кодекс Крови. Книга VII

Борзых М.
7. РОС: Кодекс Крови
Фантастика:
боевая фантастика
попаданцы
аниме
5.25
рейтинг книги
Кодекс Крови. Книга VII

Егерь. Системный зверолов

Скиба Николай
1. Зверолов
Фантастика:
рпг
уся
фэнтези
фантастика: прочее
попаданцы
6.50
рейтинг книги
Егерь. Системный зверолов

Турнир

Скиба Николай
7. Зверолов
Фантастика:
фэнтези
рпг
уся
фантастика: прочее
попаданцы
6.00
рейтинг книги
Турнир

Маленькая женщина Большого

Зайцева Мария
5. Наша
Любовные романы:
эро литература
современные любовные романы
5.71
рейтинг книги
Маленькая женщина Большого

Улисс (часть 3)

Джеймс Джойс
5.00
рейтинг книги
Улисс (часть 3)