Андрей Попов - Windows Script Host для Windows 2000/XP
- Название:Windows Script Host для Windows 2000/XP
- Автор:
- Жанр:
- Издательство:БХВ-Петербург
- Год:2004
- Город:Санкт-Петербург
- ISBN:5-94157-197-6
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Андрей Попов - Windows Script Host для Windows 2000/XP краткое содержание
В книге описывается сервер сценариев Windows Script Host (WSH) версии 5.6, который является одним из стандартных компонентов Windows ХР, а также может быть установлен в более ранних версиях Windows. Приводятся сценарии на языках VBScript и JScript, иллюстрирующие применение стандартных объектов WSH 5.6, включая создание из сценариев дочерних процессов и запуск сценариев на удаленных компьютерах. В качестве более сложных примеров рассматриваются сценарии, работающие с базами данных, управляющие приложениями Microsoft Office, организующие графический пользовательский интерфейс, использующие технологии ADSI (Active Directory Service Interface) и WMI (Windows Management Instrumentation) для решения задач администрирования. Освещены вопросы практической работы с XML-файлами и создания СОМ-объектов. Особое внимание уделяется вопросам безопасности при работе со сценариями, приводятся конкретные примеры настроек политик безопасности. К книге прилагается дискета с исходными текстами большинства примеров.
Windows Script Host для Windows 2000/XP - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
//Вычисляем общий объем диска в мегабайтах
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);
RepFile.WriteLine("+---------------------------------------------------+");
Если же устройство drive
не готово (свойство IsReady
равно false
), то с помощью свойства DriveType
проверяется, не является ли ли диск сетевым (в этом случае DriveType=3
), после чего в файл выводится соответствующее сообщение:
if (drive.DriveType == 3) { //Проверяем, является ли диск сетевым
//Записываем информацию о букве диска
RepFile.WriteLine( "Диск " + drive.DriveLetter + " является сетевым" );
//Записываем пустые строки
RepFile.WriteLine();
RepFile.WriteLine();
} else {
//Устройство не готово
RepFile.WriteLine( "Устройство " + drive.DriveLetter + ": не готово" );
//Записываем пустые строки
RepFile.WriteLine();
RepFile.WriteLine();
}
Полный текст сценария DrivesReport.js приведен в листинге 5.16.
/*******************************************************************/
/* Имя: DrivesReport.js */
/* Язык: JScript */
/* Описание: Формирование отчета об использовании дискового */
/* пространства для всех устройств на компьютере */
/*******************************************************************/
//Объявляем переменные
var FSO, RepFile, MDate,WshShell, ForWriting = 2;
// Функция для перебора в цикле всех устройств (дисков)
function LoopDrives() {
var Drives;
//Создаем коллекцию дисков
Drives = new Enumerator( FSO.Drives );
//Цикл по всем дискам
for(; !Drives.atEnd(); Drives.moveNext()) WriteDriveInfo(Drives.item());
}
// Функция для вывода информации об одном устройстве (диске)
function WriteDriveInfo(drive) {
var s,Total,Free,Used,DriveLetter,VolumeName;
if (drive.IsReady) { //Проверяем готовность устройства
//Вычисляем общий объем диска в мегабайтах
Total = Math.round(drive.TotalSize/1048576);
//Вычисляем объем свободного пространства в мегабайтах
Free = Math.round(drive.FreeSpace/1048576);
//Вычисляем объем использованного пространства в мегабайтах
Used = Total - Free;
//Определяем букву диска
DriveLetter=drive.DriveLetter+":";
//Определяем метку тома
VolumeName=drive.VolumeName;
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);
RepFile.WriteLine("+---------------------------------------------------+");
//Записываем пустые строки
RepFile.WriteLine();
RepFile.WriteLine();
} else if (drive.DriveType == 3) { //Проверяем, является ли диск сетевым
//Записываем информацию о букве диска
RepFile.WriteLine( "Диск " + drive.DriveLetter + " является сетевым" );
//Записываем пустые строки
RepFile.WriteLine();
RepFile.WriteLine();
} else {
//Устройство не готово
RepFile.WriteLine( "Устройство " + drive.DriveLetter + ": не готово" );
//Записываем пустые строки
RepFile.WriteLine();
RepFile.WriteLine();
}
}
/******************* Начало **********************************/
//Создаем объект FileSystemObject
FSO = WScript.CreateObject("Scripting.FileSystemObject");
//Открываем файл rep.txt
RepFile = FSO.OpenTextFile("rep.txt", ForWriting, true);
//Определяем текущую дату и время
MDate = new Date();
//Записываем дату и время в отчет
RepFile.WriteLine("Дата отчета: " + MDate);
RepFile.WriteLine();
//Вызываем функцию LoopDrives
LoopDrives();
//Закрываем файл rep.txt
RepFile.Close();
//Создаем объект WshShell
WshShell=WScript.CreateObject("WScript.Shell");
//Запускаем Блокнот (notepad.exe) и открываем в нем файл rep.txt
WshShell.Run("notepad.exe rep.txt");
/************* Конец *********************************************/
// Вспомогательные функции
//Выравнивание строки s вправо в поле длиной l символов
function RFillStr(l,s) {
var ss,i,ll;
ll=l-s.length;
if (s.length>=l) {
return(s);
} else {
ss=s;
for (i=1;i<=ll;i++) {
ss=" "+ss;
}
return(ss);
}
}
//Выравнивание строки s влево в поле длиной l символов
function LFillStr(l,s) {
var ss,i,ll;
ll=l-s.length;
if (s.length>=l) {
return(s);
} else {
ss=s;
for (i=1;i<=ll;i++) {
ss=ss+" ";
}
return(ss);
}
}
//Выравнивание строки s по центру в поле длиной l символов
function FillStr(l,s) {
var ss,i,ll,s1,l2;
ll=l-s.length;
if (s.length>=l) {
return(s);
} else {
ss=s;
l2=Math.round((l-s.length)/2);
ss=LFillStr(s.length+l2,s);
ss=RFillStr(l,ss);
return(ss);
}
}
Удаление ненужных временных файлов с жесткого диска
В результате некорректного завершения приложений на жестком диске часто остаются "бесхозные" временные файлы (с расширением tmp), которые затем приходится удалять вручную. Весьма удобно было бы удалять все такие файлы сразу со всего жесткого диска, не заботясь о том, в каких каталогах они находятся. Используя стандартные средства операционной системы, можно сначала с помощью пункта Найти(Find) меню Пуск(Start) составить список всех временных файлов (рис. 5.9), затем выделить все файлы в этом списке и нажать комбинацию клавиш + (удаление файлов без помещения в Корзину).
Читать дальшеИнтервал:
Закладка: