Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Выполнение основных операций с файловой системойСодержание книги
Поиск на нашем сайте Для работы с файловой системой из сценариев WSH предназначены восемь объектов, главным из которых является FileSystemObject. С помощью этого объекта можно выполнить следующие основные действия: - создавать каталоги; - создавать или открывать текстовые файлы; - копировать или перемещать файлы и каталоги; - удалять файлы и каталоги; - создавать объекты Drive, Folder и File для доступа к конкретному диску, каталогу или файлу соответственно. С помощью свойств объектов Drive, Folder и File можно получить детальную информацию о тех элементах файловой системы, с которыми они ассоциированы. Объекты Folder и File также предоставляют методы манипулирования файлами и каталогами (создание, удаление, копирование, перемещение); эти методы в основном копируют соответствующие методы объекта FileSystemObject. Кроме того, имеются три объекта-коллекции: Drives, Folders и Files. Коллекция Drives содержит объекты Drive для всех имеющихся в системе дисков, Folders – объекты Folder для всех подкаталогов заданного каталога, Files - объекты File для всех файлов, находящихся внутри определенного каталога. Наконец, из сценария можно читать информацию из текстовых файлов и записывать в них данные. Методы для этого предоставляет объект TextStream. В Приложении 5 кратко описано, какие объекты, свойства и методы могут использоваться для выполнения наиболее часто используемых файловых операций. Задания В соответствии с номером студента по списку в журнале разработать скрипт (сценарий) (см. таблицу). В комментариях описать применение программы и сообщить информацию об авторе. Текущий каталог не изменять, если это специально не оговорено. Если производится копирование из одного места в другое, параметры источника и назначения передавать в командной строке. В лабораторной работе № 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 заносятся все подкаталоги текущего каталога, затем производится сортировка по их размеру: 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. Специальный справочник. - Питер: 2002: - 336 с. 10. Борн Г. Руководство разработчика на Microsoft Windows Script Host 2.0. Мастер-класс (+CD)/ Пер. с англ. – СПб.: Издательско-торговый дом «Русская Редакция», 2001. – 480 стр.: ил. 11. Экк Сценарии ADSI для системного администрирования Windows NT/2000, Вильямс, 2000. - 576 с.
Приложение 1
|
||
|
Последнее изменение этой страницы: 2016-12-17; просмотров: 348; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.102 (0.007 с.) |