Андрей Попов - Windows Script Host для Windows 2000/XP
Таблица 5.7. Свойства объекта DriveВ
Свойство Описание AvailableSpace Содержит количество доступного для пользователя места (РІ байтах) РЅР° РґРёСЃРєРµ DriveLetter Содержит Р±СѓРєРІСѓ, ассоциированную СЃ локальным устройством или сетевым ресурсом. Рто свойство доступно только для чтения DriveType Содержит числовое значение, определяющее тип устройства: 0 — неизвестное устройство; 1 — устройство СЃРѕ сменным носителем; 2 — жесткий РґРёСЃРє; 3 — сетевой РґРёСЃРє; 4 — CD-ROM; 5 — RAM-РґРёСЃРє FileSystem Содержит тип файловой системы, использующейся РЅР° РґРёСЃРєРµ (FAT, NTFS или CDFS) FreeSpace Содержит количество СЃРІРѕР±РѕРґРЅРѕРіРѕ места (РІ байтах) РЅР° локальном РґРёСЃРєРµ или сетевом ресурсе. Доступно только для чтения IsReady Содержит true, если устройство готово, Рё false РІ противном случае. Для устройств СЃРѕ сменными носителями Рё РїСЂРёРІРѕРґРѕРІ CD-ROM IsReady возвращает true только РІ том случае, РєРѕРіРґР° РІ РґРёСЃРєРѕРІРѕРґ вставлен соответствующий носитель Рё устройство готово предоставить доступ Рє этому носителю Path Содержит путь Рє РґРёСЃРєСѓ (например, "РЎ:", РЅРѕ РЅРµ "РЎ:") RootFolder Содержит объект Folder, соответствующий корневому каталогу РЅР° РґРёСЃРєРµ. Доступно только для чтения SerialNumber Содержат десятичный серийный номер тома заданного РґРёСЃРєР° ShareName Содержит сетевое РёРјСЏ для РґРёСЃРєР°. Если объект РЅРµ является сетевым РґРёСЃРєРѕРј, то РІ свойстве ShareName содержится пустая строка ("") TotalSize Содержит общий объем РІ байтах локального РґРёСЃРєР° или сетевого ресурса VolumeName Содержит метку тома для РґРёСЃРєР°. Доступно для чтения Рё записиВ листинге 5.7 приведен сценарий DriveInfo.js, РІ котором объект Drive используется для доступа Рє некоторым свойствам РґРёСЃРєР° РЎ: (СЂРёСЃ. 5.3).
Рис. 5.3. Свойства диска С:
Листинг 5.7. Получение свойств диска С/*******************************************************************/
/* РРјСЏ: DriveInfo.jsВ В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В */
/* Язык: JScript                                                  */
/* Описание: Вывод на экран свойств диска C:                      */
/*******************************************************************/
//Объявляем переменные
var FSO,D,TotalSize,FreeSpace,s;
//Создаем объект FileSystemObject
FSO = WScript.CreateObject("Scripting.FileSystemObject");
//Создаем объект Drive для диска C:
D = FSO.GetDrive("C:");
s="Рнформация Рѕ РґРёСЃРєРµ C:n";
//Получаем серийный номер диска
s+="Серийный номер: "+D.SerialNumber+"n";
//Получаем метку тома диска
s+="Метка тома: "+D.VolumeName+"n";
//Вычисляем общий объем диска в килобайтах
TotalSize=D.TotalSize/1024;
s+="Объем: "+TotalSize+" Kbn";
//Вычисляем объем свободного пространства диска в килобайтах
FreeSpace=D.FreeSpace/1024;
s+="РЎРІРѕР±РѕРґРЅРѕ: "+FreeSpace+" Kbn";
//Выводим свойства диска на экран
WScript.Echo(s);
/************* Конец *********************************************/В
Коллекция Drives
Доступная только для чтения коллекция Drives содержит объекты Drive для всех доступных дисков компьютера, в том числе для сетевых дисков и дисководов со сменными носителями.
В свойстве Count коллекции Drives хранится число ее элементов, т.е. число доступных дисков.
С помощью метода Item(drivespec) можно получить доступ к объекту Drive для диска, заданного параметром drivespec. Например:
var FSO, DriveCol, D; //Создаем объект FileSystemObject
FSO = WScript.CreateObject("Scripting.FileSystemObject");
//Создаем коллекцию имеющихся в системе дисков
DriveCol = FSO.Drives;
// Рзвлечение элемента коллекции (РґРёСЃРє РЎ:)
D = DriveCol.Item("РЎ:");
//Вывод на экран метки тома диска С:
WScript.Echo("Диск С: имеет метку", D.VolumeName);
Для перебора всех элементов коллекции Drives нужно, как обычно, использовать объект Enumerator.В
В листинге 5.8 приведен файл ListDrives.js, в котором с помощью объекта Enumerator на экран выводятся сведения обо всех доступных дисках (рис. 5.4).
Рис. 5.4. Список всех дисков, имеющихся в системе
Листинг 5.8. Построение списка всех имеющихся дисков/*******************************************************************/
/* РРјСЏ: ListDrives.jsВ В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В */
/* Язык: JScript                                                  */
/* Описание: Получение списка всех имеющихся дисков               */
/*******************************************************************/
//Объявляем переменные
var FSO,s,ss,Drives,D;
//Создаем объект FileSystemObject
FSO = WScript.CreateObject("Scripting.FileSystemObject");
//Создаем коллекцию дисков, имеющихся в системе
Drives = new Enumerator(FSO.Drives);
s="";
//Цикл по всем дискам в коллекции