- WScript
- FileSystemObject
- Drive
- File
- Folder
- TextStream
- Shell
- WshNetwork
- WshShell
- Wsh[Url]Shortcut
- WshScriptExec
- ADOStreamObject
- HTA
- CMD
- uconv
- Enumerator
- Источник
Объект Enumerator
С помощью объекта Enumerator можно получить доступ к любому элементу коллекции (в VBScript для этого служит цикл For Each).
Коллекцией в языке JScript называется множество элементов, которое отличается от массива тем, что к элементам коллекции нельзя получить прямой доступ с помощью индексов — можно только перемешать указатель текущего элемента на самый первый или следующий относительно текущего элемент.
Для создания нового объекта встроенного класса Enumerator используется конструктор следующего вида:var е = new Enumerator(collection);
- collection
- Коллекция, для доступа к элементам которой и создается объект класса Enumerator. Сами коллекции обычно являются свойствами других объектов.
У объекта Enumerator нет свойств, а есть только 4 метода. Они позволяют получать доступ к начальному, следующему и текущему элементу коллекции и определить, достигнут ли конец коллекции.
- Метод atEnd() возвращает
true, если текущий элемент коллекции является последним в ней, иfalseв противном случае. - Метод item() возвращает текущий элемент коллекции. Если коллекция пуста или текущий элемент не определен, то возвращается значение
undefined. - Метод moveFirst() перемещает указатель на первый элемент коллекции.
- Метод moveNext() перемещает указатель на следующий элемент коллекции.
Примеры
//Объявляем переменные
var FSO, Folder, Files, s;
//Создаем объект FileSystemObject
FSO = WScript.CreateObject("Scripting.FileSystemObject");
// Создаем объект Folder для корневого диска С:\AA
Folder=FSO.GetFolder("С:\\AA");
// Создаем коллекцию файлов каталога
Files = new Enumerator(Folder.Files);
//Цикл по всем файлам
for (Files.moveFirst(); !Files.atEnd; Files.moveNext) {
//Добавляем строку с именем файла
s+=Files.item.Name+"\n";
//Выводим полученные строки на экран }
WScript.Echo(s);
var x;
var fso = new ActiveXObject("Scripting.FileSystemObject");
var fc = new Enumerator(fso.Drives);
for (fc.moveFirst(); !fc.atEnd(); fc.moveNext())
{ x = fc.item();
s='Drive '+x.DriveLetter+': ';
if (x.DriveType == 0) s += "неизвестное устройство ";
if (x.DriveType == 1) s += "устройство со сменным носителем ";
if (x.DriveType == 2) s += "жёсткий диск " ;
if (x.DriveType == 3) s += "сетевой диск ";
if (x.DriveType == 4) s += "CD-ROM ";
if (x.DriveType == 5) s += "RAM-диск ";
if (x.IsReady)
{ namedisk=(x.DriveType == 3)?x.ShareName:x.VolumeName;
s += " Name=" +((namedisk.length > 0 )? namedisk : "[NO NAME] ");
s +=" FileSystem="+x.FileSystem;
s +=" FreeSpace="+Math.floor(x.FreeSpace/1024) +"КБ";
}
else s +=" [disk not ready]";
WScript.Echo(s);
}