Операционные системы / Лаб 6
.docxМинистерство образования и науки Российской Федерации
Федеральное агентство по образованию
НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
Лабораторная работа №6
«Операционные системы, среды и оболочки»
Выполнили:
Студентки группы ФБИ – 22
Преподаватель:
Эстрайх И.В.
Новосибирск 2014
Приемы работы со сложными объектами Windows на VBScript/JScript
Написала программу script1.js, которая выполняет действия следующего плана:
Формирует список каталогов и файлов, в том числе извлекает список всех вложенных каталогов и файлов, и выдает полученную информацию – имя файла или каталога. Данные отображаются в окошке Интернет-браузера в структурированном виде, то есть наименования элементов содержимого каталога выдаются на экран с дополнительным пробелом слева относительно левого отступа родительского каталога.
Текст script1.js:
var PVK=WScript.CreateObject("Scripting.FileSystemObject");
var a=WScript.Arguments;
varjFolder=PVK.GetFolder(a(0)); //объект Folder - каталог, которыйнадораспечатать
varjSFO=new Enumerator(jFolder.SubFolders); //коллекцияподкаталогов
varjSFI=new Enumerator (jFolder.Files); //коллекцияфайловкорневогокаталога
varjIE=WScript.CreateObject("InternetExplorer.Application");
jIE.Visible=false;
jIE.AddressBar=false;
jIE.MenuBar=false;
jIE.StatusBar=false;
jIE.ToolBar=false;
jIE.FullScreen=false;
jIE.Resizable=false;
jIE.Height=700;
jIE.Width=500;
jIE.Navigate("about:blank");
while (jIE.Busy) WScript.Sleep(100);
jIE.Visible=true;
var doc=jIE.Document;
doc.title="Заголовок";
doc.body.innerHTML="<p>"+jFolder.Name+"</p>";
for (; !jSFO.atEnd(); jSFO.moveNext())
{ doc.body.innerHTML=doc.body.innerHTML+"<pre><p> "+jSFO.item().Name+"</p></pre>";}
for (; !jSFI.atEnd(); jSFI.moveNext())
{ doc.body.innerHTML=doc.body.innerHTML+"<pre><p> "+jSFI.item().Name+"</p></pre>"; }
Создала программу script2.vbs, которая выполняет те же действия, но с использованием рекурсивного вызова функций или процедур, используемых для просмотра подкаталогов любого уровня вложенности и отображения списка содержимого.
Текст script2.vbs:
u=0 REM уровень вложенности
SubPrintFiles(vbDir) REM вывод файлов каталога
vbDir
DimvbDFI
SetvbDFI=vbDir.Files REM коллекция файлов каталога vbDir
For i=0 To u Step 1
str=str&" " REM формируется строка отступов
Next
REM просмотр коллекции файлов vbDFI
ForEachvbFIInvbDFI
doc.body.innerHTML=doc.body.innerHTML&"<pre><p>"&str&vbFI.Name&"</p></pre>" REM печать имени каждого файла
Next
End Sub
Sub PrintAll(vbDir)
vbDir
Dim vbDSFO
Set vbDSFO=vbDir.SubFolders REM коллекцияподкаталоговсамогокаталога
vbDir
otstup=""
u=u+1
For i=1 To u Step 1
otstup=otstup&" "
Next
For Each vbFOInvbDSFO
doc.body.innerHTML=doc.body.innerHTML&"<pre><p>"&otstup&vbFO.Name&"</p></pre>"
REM если в подкаталоге есть свои подкаталоги, рекурсивный вызов процедуры
If vbFO.SubFolders.Count<>0 Then PrintAllvbFO
REM если в подкаталоге есть файлы, печатаем их
If vbFO.Files.Count<>0 Then PrintFilesvbFO
Next
u=u-1
If u=0 Then PrintFilesvbDir
End Sub
Dim FSO
Set FSO=WScript.CreateObject("Scripting.FileSystemObject")
Dim a
Set a=WScript.Arguments
Dim vbFolder
Set vbFolder=FSO.GetFolder(a(0))
Dim vbIE
Set vbIE=WScript.CreateObject("InternetExplorer.Application")
vbIE.Visible=false
vbIE.AddressBar=false
vbIE.MenuBar=false
vbIE.StatusBar=false
vbIE.ToolBar=false
vbIE.FullScreen=false
vbIE.Resizable=false
vbIE.Height=700
vbIE.Width=500
vbIE.Navigate "about:blank"
whilevbIE.Busy
WScript.Sleep 100
WEnd
vbIE.Visible=true
Dim doc
Set doc=vbIE.Document
doc.title="Заголовок"
doc.body.innerHTML="<pre><p>"&vbFolder.Name&"</p></pre>"
PrintAllvbFolder
Вывод: Научиласьработать со сложными объектами Windows на VBScript/JScript. Создала две программы, которые формируют список каталогов и файлов, в том числе извлекают список всех вложенных каталогов и файлов, и выдают полученную информацию с помощью окошка Интернет-браузера.