Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Задания. В соответствии с номером студента по списку в журнале разработать скрипт (сценарий) (см



В соответствии с номером студента по списку в журнале разработать скрипт (сценарий) (см. таблицу). В комментариях описать применение программы и сообщить информацию об авторе. Текущий каталог не изменять, если это специально не оговорено. Если производится копирование из одного места в другое, параметры источника и назначения передавать в командной строке.

В лабораторной работе № 3 необходимо:

1) вывести данные об авторе и задании (WScript.echo);

var s; //Объявление переменной

// Формирование строки

s="Лабораторная работа N 3\n"+

"Работа с файловой системой WSH\n"+

"Выполнил ст-т гр. XX-XX\n";

WScript.Echo (s); // Печать строки

2) необходимые параметры передавать через командную строку (WScript.Arguments);

Пример на занесение параметров командной строки в массив args:

var i, n, objArgs, s, args; // Объявляем переменные

objArgs = WScript.Arguments; // Создаем объект WshArguments

// Определяем общее количество аргументов

n = objArgs.Count();

s = "Всего аргументов: "+n+"\n";

args = new Array(n);

// цикл по коллекции аргументов

for (i=0; i <= n-1; i++) {

s += objArgs(i)+"\n"; // Формируем строки с аргументами

args[i] = objArgs(i); // Записываем в массив

}

WScript.Echo(s); // Выводим сформированные строки

3) выполнить файловую операцию по вариантам (FileSystemObject);

Пример на поиск в текущем каталоге файла наибольшего размера:

var FSO, Path, Fold, F, i = 0, CurSize, MaxSize = 0, MaxF, s;

FSO = WScript.CreateObject("Scripting.FileSystemObject");

// получаем доступ к текущему каталогу

Path = FSO.GetParentFolderName(WScript.ScriptFullName);

Fold = FSO.GetFolder(Path);

// Создаем коллекцию файлов

F = new Enumerator(Fold.Files);

// Цикл по всем файлам

while (! F.atEnd()) {

CurSize = F.item().Size; // размер текущего файла

// сравниваем размер

if (CurSize > MaxSize) {

MaxSize = CurSize; // новый максимум

MaxF = F.item(); // файл наибольшего размера

}

// Переходим к следующему файлу

F.moveNext();

i++; // кол-во просмотренных файлов

} // while

s = "В текущем каталоге "+ Fold.Name + " "+i+" файлов.\n"+

"Максимальный размер имеет "+MaxF.Name+" = "+

Math.round(MaxSize/1024) + " Кб";

WScript.echo(s);

Пример на вывод дат создания (изменения, последнего обращения) и атрибутов файла, указанного в командной строке:

var file = "C:\\Autoexec.bat"; // файл автозагрузки

// извлекам параметры командной строки - там имя файла

var objArgs = WScript.Arguments; // коллекция аргументов

if (objArgs.length > 0) // кол-во аргументов > 0

file = objArgs(0); // получаем первый аргумент

// Создание FileSystemObject для доступа к файловой системе

var FSO = WScript.CreateObject("Scripting.FileSystemObject");

// проверка существования файла

if (! FSO.FileExists(file))

{

WScript.Echo("Ошибка:", file, " не существует");

WScript.Quit(1);

}

var F = FSO.GetFile(file); // извлекаем в объект файл

// Теперь извлекаем информацию о файле

var s = "Файл: \t\t" + F.Name + "\n"; // имя файла

// даты создания, изменения, последнего обращения

var D1 = new Date(F.DateCreated); // создаем объект дата

// конвертируем в удобоваримый формат

s += "Создан: \t\t" + D1.toLocaleDateString() + "\n";

var D2 = new Date(F.DateLastModified); // создаем объект дата

s += "Изменен: \t" + D2.toLocaleDateString() + "\n";

var D3 = new Date(F.DateLastAccessed); // создаем объект дата

s += "Обращение: \t" + D3.toLocaleDateString() + "\n";

// расшифровка атрибутов

s += "Атрибуты: \t";

var attrib = F.Attributes;

if ((attrib & 0x01)!= 0) // Read-only

s += "R ";

if ((attrib & 0x02)!= 0) // Hidden

s += "H ";

if ((attrib & 0x04)!= 0) // System

s += "S ";

if ((attrib & 0x20)!= 0) // Archive

s += "A ";

if ((attrib & 0x800)!= 0) // Compressed (Windows NT)

s += "C ";

WScript.Echo(s); // вывод на экран

4) записать протокол выполненных дествий во внешний log-файл (объект TextStream).

var FSO = WScript.CreateObject("Scripting.FileSystemObject");

// Создаем текстовый файл

var F = FSO.CreateTextFile("log.txt", true);

// Записываем строку в файл

var D = new Date();

F.WriteLine("Протокол работы от:"+D.toLocaleDateString());

// Закрываем файл

F.Close();

В работе № 4 необходимо:

1) предусмотреть поле ввода необходимых данных по вариантам (вызов функции InputBox языка VBScript в Jscript возможен при создании сценария WSF с XML-разметкой);

<job id="InputBox">

<script language="VBScript">

Function InputName ' Описываем функцию на языке VBScript

' Вводим имя в диалоговом окне

InputName = InputBox("Введите Ваше имя:",

"Окно ввода VBScript")

End Function

</script>

<script language="JScript">

var s;

s = InputName(); // Вызываем функцию InputName

// Выводим значение переменной s на экран

WScript.Echo("Здравствуйте, "+s+"!");

</script>

</job>

2) произвести контроль вводимых данных (на соответствие датам, строкам, числам и пр.);

var args = WScript.Arguments; // коллекция аргументов

var n = args.Count();

// проверка на кол-во аргументов

if (n==0) {

WScript.echo("Задайте аргумент в командной строке!");

WScript.Quit(); // выход из сценария

}

var s = args(0);

if (isNaN(s))

{

WScript.echo("Аргумент - Not A Number!");

WScript.Quit(); // выход из сценария

}

m = parseInt(s);

if (! isFinite(m))

{

WScript.echo("Аргумент не является числом!");

WScript.Quit(); // выход из сценария

}

WScript.echo("Вы ввели число "+m);

3) создать диалог для подтверждения операций (MsgBox или Popup).

var WshShell, Res, Text, Title; // Объявление переменных

// Инициализация констант для диалоговых окон

var vbOkCancel=1, vbOk=1;

// Создание объекта WshShell

WshShell = WScript.CreateObject("WScript.Shell");

Text = "Вы действительно хотите удалить файлы?";

Title = "Сообщение";

// Вывод диалогового окна на экран

Res=WshShell.Popup(Text,0, Title, vbOkCancel);

// Определение, какая из кнопок была нажата в диалоговом окне

if (Res==vbOk)

WshShell.Popup ("Нажата кнопка ОК");

else

WshShell.Popup ("Нажата кнопка Отмена");

В работе № 5 необходимо:

Записать информацию о всех файлах (каталога) в таблицу MS Word или Excel, состоящую из 4 колонок – порядковый номер, имя файла, расширение (дата, размер и т.п. – в зависимости от задания в 3-ей работе), выполненное действие. После заполнения таблицы должна быть произведена сортировка по 3-ей колонке. В следующем примере в таблицу MS Word заносятся все подкаталоги текущего каталога, затем производится сортировка по их размеру:

1)

var WA, // экземпляр объекта Application

WD; // экземпляр объекта Document

var n, WshShell, F, Fold, fname, fsize, i1,Cur, put;

i1= 0; // кол-во подкаталогов

// создаем объект WshShell

WshShell = WScript.CreateObject("WScript.Shell");

// создаем объект FileSystemObject

FSO = WScript.CreateObject("Scripting.FileSystemObject");

F = FSO.GetFolder(WshShell.CurrentDirectory);

Fold = new Enumerator(F.SubFolders);

n= F.SubFolders.Count;

WScript.Echo("Количество каталогов "+n);

fname= new Array(n);

fsize= new Array(n);

put= F.Path;

for (;!Fold.atEnd();Fold.moveNext()) {

// извлекаем текущий элемента коллекции

Cur=Fold.item();

fname[i1]=Cur.Name;

fsize[i1]= parseInt(Cur.Size/1024);

i1++ }

var wdCell=12,wdAlignParagraphLeft=0,wdAlignParagraphCenter=1,

wdWindowStateMaximize=1;

// создаем объект Application

WA=WScript.CreateObject("Word.Application");

WD=WA.Documents.Add();// создаем новый документ

WA.Visible=true; // делаем окно Winword видимым

WA.WindowState=wdWindowStateMaximize; // Максимизируем окно var count,text1,text2;

WA.Selection.TypeText(" В директории "+put+ " существуют следующие каталоги: ");

WA.Selection.TypeText("**************************************");

WA.ActiveDocument.Tables.Add(WA.Selection.Range,3,2,1,1);

WA.Selection.Font.Color = 255;

WA.Selection.TypeText("Каталог");

WA.Selection.MoveRight(wdCell);

WA.Selection.Font.Color = 255;

WA.Selection.TypeText("Размер в Кб");

WA.Selection.MoveRight(wdCell);

count= 0;

while (count!= n) {

text1=fname[count];

text2=fsize[count]+"";

WA.Selection.TypeText(text1);

WA.Selection.MoveRight(wdCell);

WA.Selection.TypeText(text2);

WA.Selection.MoveRight(wdCell);

count++;

WScript.Sleep(100);

}

WA.Selection.Sort(0,"столбцам 2",1,0,"",0,0,"",0,0,0,1,0);

Третья, четвертая и пятая работа должны находится в одном исходном файле. Программа будет обрабатывать аргументы командной строки, либо, при их отсутствии, предлагать диалог ввода. Протокол работы ведется как в текстовом файле, так и во внешнем приложении – MS Word или Excel.

ЛИТЕРАТУРА

1. Финогенов MS-DOS: Самоучитель по системным функциям, Горячая линия-телеком, 2001, 382 стр.

2. Панкратов Операционная система MS-DOS 6.22: Справочное пособие, Познавательная книга плюс, 2001, 224 стр.

3. Губин А. Работа в MS-DOS для всех: Практическое пособие, Радио и связь, 1993, 160 стр.

4. Франкен Г., Молявко С. MS-DOS 6.2 для пользователя, Киев, BHV, 1994, Москва, БИНОМ, 1994.

5. Фигурнов В. IBM PC для пользователя, г.Уфа, НПО “Информатика и Компьютеры”, 1993.

6. Руководство по программированию под управлением MS DOS:Пер.с фр./Пьеро Ф., Люкзак Ж.-Л.,Рейко Ф.;Под ред. Пьеро Ф.-М.:Радио и связь,1995.-544с.

7. Попов А. В. Командные файлы и сценарии Windows Script Host, BHV-СПб, 2003, - 320 с.

8. Попов А.В. Windows Script Host 2000/ XP. – СПб.: БХВ-Петербург, 2003. – 640 с.: ил.

9. Торрес Дж. Скрипты для администратора Windows. Специальный справочник, Питер, 2002, 336 с.

10. Борн Г. Руководство разработчика на Microsoft Windows Script Host 2.0. Мастер-класс (+CD)/ Пер. с англ. – СПб.: Издательско-торговый дом «Русская Редакция», 2001. – 480 стр.: ил.

11. Экк Сценарии ADSI для системного администрирования Windows NT/2000, Вильямс, 2000, 576 стр.





Дата публикования: 2015-09-18; Прочитано: 543 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.016 с)...