Андрей Попов - 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 - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
//Выводим имя файла на экран
WScript.Echo(" "+File.Name);
//Определяем дату создания файла
d=new Date(File.DateCreated);
//Формируем строку ss для записи в log-файл
ss=LFillStr(13,File.Name)
s1="("+DateToStr(d)+" ";
s1+=TimeToStr(d)+")";
ss+=LFillStr(20,s1);
//Определяем текущую дату
d=new Date();
ss+=DateToStr(d);
ss+=" "+TimeToStr(d);
//Записываем сформированную строку в log-файл
FLog.WriteLine(ss);
}
Записываемая в log-файл строка формируется в нужном виде с помощью вспомогательных функций LFillStr
(выравнивание строки влево в поле заданной длины), DateToStr
(формирование из объекта Date строки формата ДД/ММ/ГГГГ) и TimeTostr
(формирование из объекта Date строки формата ЧЧ:ММ).
В функции MoveFiles()
, как и в WriteLog()
, производится перебор в цикле while
файлов каталога-источника (элементов коллекции Files). Перемещение файлов осуществляется с помощью последовательного применения методов Copy
и Delete
:
Files.moveFirst();
//Цикл по всем файлам в коллекции
while (!Files.atEnd()) {
//Извлекаем текущий файл из коллекции
File=Files.item();
//Выделяем расширение файла
s=FSO.GetExtensionName(File.Name);
//Проверяем, совпадает ли расширение текущего файла
//с расширением файлов для перемещения
if (s==Mask) {
//Выводим имя файла на экран
WScript.Echo(" "+File.name);
//Копируем файл в целевой каталог
File.Copy(Dest);
//Удаляем файл
File.Delete();
//Увеличиваем счетчик количества перемещенных файлов
Col++;
}
//Переходим к следующему файлу в коллекции
Files.moveNext();
}
После перемещения всех файлов на экран выводится информация об их количестве:
WScript.Echo("Перемещено файлов:", Col);
WScript.Echo("Нажмите Enter...");
WScript.StdIn.ReadLine();
Полный текст сценария MoveLog.js приведен в листинге 5.19.
/*******************************************************************/
/* Имя: MoveLog.js */
/* Язык: JScript */
/* Описание: Перемещение файлов из каталога-источника в */
/* целевой каталог с ведением log-файла */
/*******************************************************************/
//Объявляем переменные
var
Source="C:\\In\\", //Путь к каталогу-источнику файлов для перемещения
Dest="C:\\Out\\", //Путь к целевому каталогу
Mask="003", //Расширение файлов для перемещения
PathLog="C:\\In\\log.txt", //Путь к log-файлу
ForAppending=8; //Константа для работы с файлами
//Объявляем переменные
var FSO,Fold,Files;
//Функция для записи информации в log-файл
function WriteLog() {
//Объявляем переменные
var s,ss,s1,d,File,FLog;
WScript.Echo("");
WScript.Echo("Записываем информацию в log-файл...");
//Открываем log-файл для добавления
FLog=FSO.OpenTextFile(PathLog,ForAppending,true);
//Переходим к первому элементу коллекции файлов
Files.moveFirst();
//Цикл по всем файлам в коллекции
while (!Files.atEnd()) {
//Извлекаем текущий файл из коллекции
File=Files.item();
//Выделяем расширение файла
s=FSO.GetExtensionName(File.Name);
//Проверяем, совпадает ли расширение текущего файла
//с расширением файлов для перемещения
if (s==Mask) {
//Выводим имя файла на экран
WScript.Echo(" "+File.Name);
//Определяем дату создания файла
d=new Date(File.DateCreated);
//Формируем строку ss для записи в log-файл
ss=LFillStr(13,File.Name)
s1="("+DateToStr(d)+" ";
s1+=TimeToStr(d)+")";
ss+=LFillStr(20,s1);
//Определяем текущую дату
d=new Date();
ss+=DateToStr(d);
ss+=" "+TimeToStr(d);
//Записываем сформированную строку в log-файл
FLog.WriteLine(ss);
}
//Переходим к следующему файлу в коллекции
Files.moveNext();
}
}
//Функция для перемещения файлов
function MoveFiles() {
//Объявляем переменные
var s,ss,Col,File;
Col=0; //Счетчик количества перемещенных файлов
WScript.Echo("");
WScript.Echo("Перемещаем файлы ...");
//Переходим к первому элементу коллекции файлов
Files.moveFirst();
//Цикл по всем файлам в коллекции
while (!Files.atEnd()) {
//Извлекаем текущий файл из коллекции
File=Files.item();
//Выделяем расширение файла
s=FSO.GetExtensionName(File.Name);
//Проверяем, совпадает ли расширение текущего файла
//с расширением файлов для перемещения
if (s==Mask) {
//Выводим имя файла на экран
WScript.Echo(" "+File.name);
//Копируем файл в целевой каталог
File.Copy(Dest);
//Удаляем файл
File.Delete();
//Увеличиваем счетчик количества перемещенных файлов
Col++;
}
//Переходим к следующему файлу в коллекции
Files.moveNext();
}
//Выводим информацию о количестве перемещенных файлов
WScript.Echo("");
WScript.Echo("Перемещено файлов:",Col);
WScript.Echo("Нажмите Enter...");
WScript.StdIn.ReadLine();
}
/******************* Начало **********************************/
//Создаем объект FileSystemObject
FSO=WScript.CreateObject("Scripting.FileSystemObject");
//Проверяем наличие каталога-источника
if (!FSO.FolderExists(Source)) {
//Выводим сообщение об отсутствии каталога-источника
WScript.Echo("Каталог-источник",Source,"не существует.");
WScript.Echo("Нажмите Enter...");
WScript.StdIn.ReadLine();
//Выходим из сценария
WScript.Quit();
}
//Проверяем наличие целевого каталога
if (!FSO.FolderExists(Dest)) {
//Выводим сообщение об отсутствии целевого каталога
WScript.Echo("Целевой каталог",Dest,"не существует.");
WScript.StdIn.ReadLine();
WScript.StdIn.ReadLine();
//Выходим из сценария
WScript.Quit();
}
//Создаем объект Folder для каталога-источника
Fold=FSO.GetFolder(Source);
//Создаем объект Enumerator для доступа к коллекцию файлов
//в каталоге-источнике
Files=new Enumerator(Fold.Files);
//Записываем информацию в log-файл
WriteLog();
//Перемещаем файлы в целевой каталог
MoveFiles();
/************* Конец *********************************************/
// Вспомогательные функции
//Дополнение строки ss ведущими нулями до длины ll
function LeadZero(ll,ss) {
var i,s,l1;
s=ss.toString();
l1=s.length;
if (l1<=ll) {
for (i=1;i<=ll-l1;i++) s="0"+s;
}
return(s);
}
//Формирование из объекта Date строки формата ДД/ММ/ГГГГ
function DateToStr(dd) {
var s;
s=LeadZero(2,dd.getDate())+"/";
Интервал:
Закладка: