Андрей Попов - Windows Script Host для Windows 2000/XP
/*******************************************************************/
/* РРјСЏ: TempFile.jsВ В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В */
/* Язык: JScript                                                  */
/* Описание: Создание временного файла со случайным именем        */
/*******************************************************************/
var FSO,FileName,f,s; //Объявляем переменные
//Создаем объект FileSystemObject
FSO = WScript.CreateObject("Scripting.FileSystemObject");
//Генерируем случайное имя файла
FileName=FSO.GetTempName();
//Создаем файл и именем FileName
f = FSO.CreateTextFile(FileName, true);
//Закрываем файл
f.Close();
//Сообщаем о создании файла
WScript.Echo("Был создан файл",FileName);
/************* Конец *********************************************/
Методы MoveFile и MoveFolder
Как и при использовании методов CopyFile и CopyFolder, для перемещения нескольких файлов или каталогов в последнем компоненте параметра source можно указывать групповые символы (? и *); в параметре destination групповые символы недопустимы.
При использовании методов MoveFile и MoveFolder процесс перемещения прерывается после первой возникшей ошибки (как и в команде move операционной системы). Перемещать файлы и каталоги с одного диска на другой нельзя.
Метод OpenTextFile
Числовой параметр iomode задает режим ввода/вывода для открываемого файла и может принимать следующие значения (табл. 5.5).
Таблица 5.5. Параметр iomode
Константа Значение Описание ForReading 1 Файл открывается только для чтения, записывать информацию в него нельзя ForWriting 2 Файл открывается для записи. Если файл с таким именем уже существовал, то при новой записи его содержимое теряется ForAppending 8 Файл открывается для добавления. Если файл уже существовал, то информация будет дописываться в конец этого файлаПараметр create имеет значение в том случае, когда открываемый файл физически не существует. Если create равно true, то этот файл создастся, если же в качестве значения create указано false или параметр create опущен, то файл создаваться не будет.
Числовой параметр format определяет формат открываемого файла (табл. 5.6).
Таблица 5.6. Параметр format
Константа Значение Описание TristateUseDefault -2 Файл открывается в формате, используемом системой по умолчанию TristateTrue -1 Файл открывается в формате Unicode TristateFalse 0 Файл открывается в формате ASCIIДля дальнейшей работы с открытым файлом, т.е. для записи или чтения информации, нужно использовать методы объекта TextStream.
В следующем примере с помощью метода OpenTextFile текстовый файл открывается в режиме добавления информации (листинг 5.6).
Листинг 5.6. Добавление информации в текстовый файл/*******************************************************************/
/* РРјСЏ: AppendFile.jsВ В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В */
/* Язык: JScript                                                  */
/* Описание: Добавление строки в текстовый файл                   */
/*******************************************************************/
//Объявляем переменные и инициализируем константы
var FSO,f,ForAppending = 8;
//Создаем объект FileSystemObject
FSO = WScript.CreateObject("Scripting.FileSystemObject");
//Открываем файл
f = FSO.OpenTextFile("C:\TestFile.txt", ForAppending, true);
//Добавление в файл строку
f.WriteLine("Привет!");
//Закрываем файл
f.Close();
/************* Конец *********************************************/
ЗамечаниеМнемонические константы, используемые в качестве параметров iomode и create, можно не определять явным образом в сценарии, как это сделано в вышеприведенном примере, а брать из самого объекта FileSystemObject (точнее говоря, из библиотеки типов этого объекта). Для этого в сценариях нужно применять разметку XML (см. листинг 3.9).
Объект Drive
С помощью объекта Drive можно получить доступ к свойствам заданного локального или сетевого диска. Создается объект Drive с помощью метода GetDrive объекта FileSystemObject следующим образом:
var FSO, D;
FSO = WScript.CreateObject("Scripting.FileSystemObject");
D = FSO.GetDrive("C:");
Также объекты Drive могут быть получены как элементы коллекции Drives.
Свойства объекта Drive представлены в табл. 5.7; методов у этого объекта нет.
Таблица 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).