Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь 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; просмотров: 262; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.145.83.96 (0.01 с.) |