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

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

Жанры

Windows Script Host для Windows 2000/XP

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

Шрифт:

Доступ к свойствам файла

Первый пример, который мы рассмотрим, будет посвящен работе с файловой системой. Мы напишем сценарий FileInfoWMI.js, в котором с помощью WMI будет формироваться диалоговое окно с информацией о файле C:\boot.ini (рис. 11.28).

Рис. 11.28. Свойства файла C:\boot.ini

Замечание

Напомним, что из сценария к файловой

системе можно получить доступ с помощью стандартного объекта
FileSystemObject
, однако использование WMI дает возможность собрать более полную информацию.

Для доступа к файлу на диске нужно создать для этого файла объект класса

DataFile
схемы CIM. Как и при использовании объектов ADSI, это делается с помощью JScript-функции
GetObject
, в качестве параметра которой указывается строка вида "
winMgmts:Prefix_class.Property=Value
", где параметр
Prefix
соответствует используемой схеме (
CIM
или
Win32
),
Class
задает имя требуемого класса,
Property
соответствует имени свойства класса, a
Value
определяет конкретное значение этого свойства. В нашем случае нужный объект (переменная
File
) создается следующим образом:

//Создаем объект класса CIM_DataFile для файла C:\boot.ini

File=GetObject("winMgmts:CIM_DataFile.Name='С:\\boot.ini'")
 

После этого свойства файла извлекаются обычным образом из переменной

File
:

//Инициализируем символьную переменную SInfo

SInfo="Информация о файле "+File.Name+"\n\n";

//Извлекаем свойства файла

SInfo+="Имя:\t\t"+File.Name+"\n";

//Определяем, доступен ли файл для чтения и записи

SInfo+="\n";

if (File.Readable) SInfo+="Файл доступен для чтения\n"

else SInfo+="Файл не доступен для чтения\n";

if (File.Writeable) SInfo+="Файл доступен для записи\n"

else SInfo+="Фaйл не доступен для записи\n";

Сформированная символьная переменная

SInfo
выводится на экран с помощью метода
Echo
объекта
WScript
:

WScript.Echo(SInfo);

Полностью текст сценария FileInfoWMI.js приведен в листинге 11.20.

Листинг 11.20. Доступ к свойствам файла с помощью WMI

/*******************************************************************/

/* Имя: FileInfoWMI.js */

/* Язык: JScript */

/* Описание: Доступ к свойствам файла с
помощью WMI */

/*******************************************************************/

//Объявляем переменные

var

 File, //Объект класса CIM_DataFile

 SInfo; //Строка для вывода на экран

//Функция для форматирования символьного представления даты

function StrDate(d) {

 var s;

 s=d.substr(6,2)+"."+d.substr(4,2)+"."+d.substr(0,4)

 return s;

}

/************* Начало *********************************************/

//Создаем объект класса CIM_DataFile для файла C:\boot.ini

File=GetObject("winMgmts:CIM_DataFile.Name='C:\\boot.ini'")

//Инициализируем символьную переменную SInfo

SInfo="Информация о файле "+File.Name+"\n\n";

//Извлекаем свойства файла

SInfo+="Имя:\t\t"+File.Name+"\n";

SInfo+="Путь:\t\t"+File.Path+"\n";

SInfo+="Диск:\t\t"+File.Drive+"\n";

SInfo+="Размер:\t\t"+File.FileSize+"\n";

SInfo+="Создан:\t\t"+StrDate(File.CreationDate)+"\n";

SInfo+="Изменен:\t\t"+StrDate(File.LastModified)+"\n";

SInfo+="Открыт:\t\t"+StrDate(File.LastAccessed)+"\n";

SInfo+="Короткое имя:\t"+File.EightDotThreeFileName+"\n";

SInfo+="Расширение:\t"+File.Extension+"\n";

SInfo+="Тип:\t"+File.FileType+"\n";

//Определяем атрибуты файла

SInfo+="\n";

SInfo+="Атрибуты:\n";

if (File.Archive) SInfo+="\tАрхивный\n";

if (File.Hidden) SInfo+="\tСкрытый\n";

if (File.System) SInfo+="\tСистемный\n";

if (File.Compressed) SInfo+="\tСжат с помощью "+File.CompressionMethod+"\n";

if (File.Encrypted) SInfo+="\tЗашифрован с помощью "+File.EncryptionMethod+"\n";

//Определяем, доступен ли файл для чтения и записи

SInfo+="\n";

if (File.Readable) SInfo+="Файл доступен для чтения\n"

else SInfo+="Файл не доступен для чтения\n";

if (File.Writeable) SInfo+="Файл доступен для записи\n"

else SInfo+="Файл не доступен для записи\n";

//Выводим сформированную строку на экран

WScript.Echo(SInfo);

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

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

Треск штанов

Ланцов Михаил Алексеевич
6. Сын Петра
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Треск штанов

Низший - Инфериор. Компиляция. Книги 1-19

Михайлов Дем Алексеевич
Фантастика 2023. Компиляция
Фантастика:
боевая фантастика
5.00
рейтинг книги
Низший - Инфериор. Компиляция. Книги 1-19

Купеческая дочь замуж не желает

Шах Ольга
Фантастика:
фэнтези
6.89
рейтинг книги
Купеческая дочь замуж не желает

Враг из прошлого тысячелетия

Еслер Андрей
4. Соприкосновение миров
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Враг из прошлого тысячелетия

Фиктивная жена

Шагаева Наталья
1. Братья Вертинские
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Фиктивная жена

Темный Охотник

Розальев Андрей
1. КО: Темный охотник
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Темный Охотник

Мастер Разума III

Кронос Александр
3. Мастер Разума
Фантастика:
героическая фантастика
попаданцы
аниме
5.25
рейтинг книги
Мастер Разума III

Отборная бабушка

Мягкова Нинель
Фантастика:
фэнтези
юмористическая фантастика
7.74
рейтинг книги
Отборная бабушка

Кодекс Охотника. Книга X

Винокуров Юрий
10. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
6.25
рейтинг книги
Кодекс Охотника. Книга X

Сумеречный Стрелок 2

Карелин Сергей Витальевич
2. Сумеречный стрелок
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Сумеречный Стрелок 2

Купидон с топором

Юнина Наталья
Любовные романы:
современные любовные романы
7.67
рейтинг книги
Купидон с топором

Отмороженный 4.0

Гарцевич Евгений Александрович
4. Отмороженный
Фантастика:
боевая фантастика
постапокалипсис
рпг
5.00
рейтинг книги
Отмороженный 4.0

Черный Маг Императора 5

Герда Александр
5. Черный маг императора
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Черный Маг Императора 5

На границе тучи ходят хмуро...

Кулаков Алексей Иванович
1. Александр Агренев
Фантастика:
альтернативная история
9.28
рейтинг книги
На границе тучи ходят хмуро...