/*************  Конец *********************************************/

<p>Примеры сценариев </p>

Ниже подробно рассмотрены несколько завершенных сценариев, иллюстрирующих работу с файловой системой компьютера.

<p>Отчет об использовании дискового пространства </p>

Напишем сценарий DrivesReport.js, который будет создавать таблицу использования дискового пространства для дисков всех типов (съемных, жестких и сетевых), имеющихся на компьютере, в следующем формате:

Диск: буква_диска 
Метка тома: метка Общий объем, Mb: n1 
Используется, Mb: n2 Свободно, Mb: n3 

Для этого в сценарии вывод информации производится в текстовый файл rep.txt (переменная RepFile), который затем открывается с помощью Блокнота (рис. 5.8):

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

WshShell=WScript.CreateObject("WScript.Shell");

//Запускаем Блокнот (notepad.exe) и открываем в нем файл rep.txt

WshShell.Run("notepad.exe rep.txt"); 

Данные об одном диске формируются в функции WriteDriveInfo(drive), где в качестве параметра drive подставляется объект Drive для нужного диска. Соответствующие объекты Drive для всех дисков, имеющихся в системе, создаются в функции LoopDrives():

// Функция для перебора в цикле всех устройств (дисков)

function LoopDrives() {

 var Drives;

 //Создаем коллекцию дисков

 Drives = new Enumerator( FSO.Drives );

 //Цикл по всем дискам

 for(; !Drives.atEnd(); Drives.moveNext()) WriteDriveInfo(Drives.item());

}

Рис. 5.8. Сформированный отчет об использовании дискового пространства

В функции WriteDriveInfo(drive) сначала проверяется готовность устройства drive — если свойство IsReady объекта Drive равно true, то для этого устройства определяются общий объем (свойство TotalSize), объем свободного пространства (свойство FreeSpace), буква диска (свойство DriveLetter) и метка тома (свойство FreeSpace):

//Вычисляем общий объем диска в мегабайтах

Total = Math.round(drive.TotalSize/1048576);

//Вычисляем объем свободного пространства в мегабайтах

Free = Math.round(drive.FreeSpace/1048576);

//Вычисляем объем использованного пространства в мегабайтах

Used = Total - Free;

//Определяем букву диска

DriveLetter=drive.DriveLetter+":";

//Определяем метку тома

VolumeName=drive.VolumeName;

Строки с полученными значениями затем приводятся к нужному виду с помощью вспомогательных функций LFillStr (выравнивание строки влево), FillStr (выравнивание строки по центру) и записываются в выходной файл RepFile:

RepFile.WriteLine("+---------------------------------------------------+");

//Записываем информацию о букве диска

s="|"+FillStr(51,"Диск "+DriveLetter)+"|";

RepFile.WriteLine(s);

RepFile.WriteLine("+---------------------------------------------------+");

//Записываем информацию о метке тома

s="|"+LFillStr(25,"Метка тома: "+VolumeName)+"|";

//Записываем информацию об общем объеме диска

s+=LFillStr(25,"Общий объем, Mb: "+Total)+"|";

RepFile.WriteLine(s);

RepFile.WriteLine("+---------------------------------------------------+");

//Записываем информацию об использованном пространстве

s="|"+LFillStr(25,"Используется, Mb: "+Used.toString())+"|";

//Записываем информацию о свободном пространстве

s+=LFillStr(25,"Свободно, Mb: "+Free.toString())+"|";

RepFile.WriteLine(s);

Перейти на страницу:

Похожие книги