Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторний_прак_СПЗ.doc
Скачиваний:
3
Добавлен:
03.05.2019
Размер:
424.45 Кб
Скачать

2 Порядок виконання роботи

Відповідно до номера студента за списком в журналі викладача  розробити  скрипт (сценарій) (див. таблицю 2.1). У коментарях описати застосування програми і повідомити інформацію про автора.  Поточний каталог не змінювати, якщо це спеціально не обумовлено. Якщо проводиться копіювання з одного місця в інше, параметри джерела і призначення передавати в командному рядку.

У лабораторній роботі № 1 необхідно:

1)  вивести дані про автора і завдання (WScript.echo);

var s; //Оголошення змінної

  // Формування рядка

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

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

  "Виконав ст-т гр. КСМ-_-_\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();

 

У роботі № 2 необхідно:

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 ("Натиснута кнопка Відміна");

 

У роботі № 3 необхідно:

1) Записати інформацію про всі файли (каталога) в таблицю Ms Word або Excel, що складається з 4 колонок, – порядковий номер, ім'я файлу, розширення (дата, розмір і тому подібне – залежно від завдання в 2-й роботі), виконану дію. Після заповнення таблиці повинне бути проведена сортування по 3-й колонці. У наступному прикладі в таблицю Ms Word заносяться всі підкаталоги поточного каталога, потім проводиться сортування за їх розміром:

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.

Таблиця 2.1 – Завдання до лабораторних робіт № 1 - 3

Завдання № 1

Завдання № 2

Завдання №3

1

Створення списку студентських каталогів

Поля введення шифру групи і кількості студентів

Word

2

Видалення файлів з певним атрибутом

Поля введення атрибутів

Excel

3

Видалення файлів певного розміру

Поле введення розміру

Word

4

Видалення файлів певного розширення

Поле введення розширення

Excel

5

Видалення файлів певної дати модифікації

Поле введення дати

Word

6

Видалення каталогів певного розміру

Поле введення максимального розміру

Excel

7

Видалення каталогів залежно від часу модифікації

Поле введення дати і часу

Word

8

Копіювання файлів з певним атрибутом

Поле введення атрибутів

Excel

9

Копіювання файлів з певним розширенням

Поле введення розширення

Word

10

Копіювання файлів з певним розміром

Поле введення мінімального розміру

Excel

11

Копіювання файлів з певним часом модифікації

Поле введення дати і часу

Word

12

Установка атрибутів файлів

Поле введення атрибутів

Excel

13

Перейменування файлів з певним розширенням

Поля введення розширень

Word

14

Перейменування файлів у верхній або нижній регістр

Поля введення регістра

Excel

15

Пошук файлів, що має задану дату створення  (модифікації)

Поле введення дати

Word

16

Знайти на диску N останніх файлів і помістити їх в новий каталог

Поля введення диска і числа файлів N

Excel

17

Знайти на диску файли нульового розміру і видалити їх

Поле вибору диска

Word

18

Знайти на диску файли за останній день, тиждень, місяць і помістити їх в новий каталог

Поле введення діапазону дат

Excel

19

Знайти на диску файли максимального і мінімального розміру, підрахунок середнього розміру

Поле вибору диска

Word

20

Визначити розмір невживаного дискового простору (вільне місце на диску мінус сумарний об'єм всіх файлів)

Поле вибору диска

Excel

21

Оновлення програмних файлів залежно від номера версії (GetFileVersion)

Поля вибору каталогів

Word

22

Додавання інформації в текстові файли

Поля вибору файлів

Excel

23

Звіт про використання дискового простору

Поле вибору диска

Word

24

Отримання і установка змінних середовища

Поля введення змінних середовища

Excel

25

Пошук файлів по масці в імені файлу

Поле введення маски

Word

26

Підрахувати загальний розмір файлів з певними розширеннями (doc, mp3, avi і ін.) в даному каталозі і його підкаталогах

Поле введення розширень

Excel

27

Створення списку студентських каталогів

Поля введення шифру групи і кількості студентів

Word

28

Видалення файлів з певним атрибутом

Поля введення атрибутів

Excel

29

Видалення файлів певного розміру

Поле введення розміру

Word

30

Видалення файлів певного розширення

Поле введення розширення

Excel

 

У завданнях з дисками передбачається повний перебір всіх файлів.