Kniga-Online.club

Андрей Попов - Windows Script Host для Windows 2000/XP

Читать бесплатно Андрей Попов - Windows Script Host для Windows 2000/XP. Жанр: Программное обеспечение издательство -, год 2004. Так же читаем полные версии (весь текст) онлайн без регистрации и SMS на сайте kniga-online.club или прочесть краткое содержание, предисловие (аннотацию), описание и ознакомиться с отзывами (комментариями) о произведении.
Перейти на страницу:

WshShell.SendKeys(SPath+"{TAB}"+Status+"~");

//Приостанавливаем сценарий на 0,5 сек

WScript.Sleep(500);

Перейдем теперь к описанию функции LoopSubFolders(Fold). Сначала в этой функции удаляются временные файлы в каталоге Fold:

//Удаляем временные файлы из каталога Fold

DelFilesInFolder(Fold, ExtForDel);

Затем происходит удаление файлов во всех подкаталогах каталога Fold, причем делается это с помощью обращения для каждого подкаталога к той же функции LoopSubFolders:

//Создаем коллекцию подкаталогов

SubFolders = new Enumerator(Fold.SubFolders);

//Цикл по всем подкаталогам

while (!SubFolders.atEnd()) {

 //Вызываем рекурсивно функцию LoopSubFolders

В LoopSubFolders(SubFolders.item());

 //Переходим к следующему подкаталогу

В SubFolders.moveNext();

}

Полный текст сценария DelTmp.js приведен в листинге 5.17.

Листинг 5.17. Удаление всех временных файлов на диске D:

/*******************************************************************/

/* РРјСЏ: DelTmp.jsВ В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В  */

/* Язык: JScript                                                   */

/* Описание: Удаление временных файлов во всех подкаталогах        */

/*           текущего каталога                                     */

/*******************************************************************/

//Объявляем глобальные переменные

var WshShell,FSO,Folder,

 ColTmp=0,        //Счетчик файлов для удаления

 ExtForDel="tmp"; //Расширение файлов, подлежащих удалению

//Рекурсивная функция для удаления временных файлов в каталоге Fold

function LoopSubFolders(Fold) {

В var SubFolders;

 //Удаляем временные файлы из каталога Fold

В DelFilesInFolder(Fold,ExtForDel);

 //Создаем коллекцию подкаталогов

В SubFolders = new Enumerator(Fold.SubFolders);

 //Цикл по всем подкаталогам

В while (!SubFolders.atEnd()) {

  //Вызываем рекурсивно функцию LoopSubFolders

В  LoopSubFolders(SubFolders.item());

  //Переходим к следующему подкаталогу

В  SubFolders.moveNext();

В }

}

//Функция для удаления файлов с расширением SExt в каталоге Fold

function DelFilesInFolder(Fold,SExt) {

 //Объявляем переменные

В var Files,s,SPath,FileExt,Status;

 //Создаем коллекцию всех файлов в каталоге Fold

В Files=new Enumerator(Fold.Files);

В s="";

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

В while (!Files.atEnd()) {

  //Определяем путь к файлу

В  SPath=Files.item().Path;

  //Выделяем расширение файла

В  FileExt=FSO.GetExtensionName(SPath).toUpperCase();

  //Сравниваем расширение файла с расширением SExt

В  if (FileExt==SExt.toUpperCase()) {

   ColTmp++; //Увеличиваем счетчик файлов для удаления

В В  try {

В В В  Status="Ok";

    //Пытаемся удалить файл

В В В  //Files.item().Delete();

   } catch (e) { //Обрабатываем возможные ошибки

В В В  if (e != 0) {

     //Произошла ошибка при удалении файла

В В В В  Status="Busy";

В В В  }

В В  }

   //Заменяем специальные символы в названии файла

В В  SPath=SPath.replace("~","{~}");

В В  SPath=SPath.replace("+","{+}");

В В  SPath=SPath.replace("^","{^}");

В В  SPath=SPath.replace("%","{%}");

   //Посылаем название файла и результат его удаления

   //в Блокнот

В В  WshShell.SendKeys(SPath+"{TAB}"+Status+"~");

   //Приостанавливаем сценарий на 0,5 сек

В В  WScript.Sleep(500);

В  }

  Files.moveNext();  //Переходим к следующему файлу

В }

}

/*******************  Начало  **********************************/

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

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

//Запускаем Блокнот

theNotepad = WshShell.Exec("Notepad");

//Приостанавливаем сценарий на 0,5 сек

WScript.Sleep(500);

//Активизируем окно Блокнота

WshShell.AppActivate(theNotepad.ProcessID);

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

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

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

Folder = FSO.GetFolder("D:\");

//Вызываем функцию LoopSubFolder для каталога Folder

LoopSubFolders(Folder);

//Формируем информацию о количестве обработанных файлов

SItog="Total: "+ColTmp+ " file(s)";

//Посылаем в Блокнот итоговую информацию

WshShell.SendKeys(SItog);

/*************  Конец *********************************************/

Поиск файлов с использованием регyлярных выражений

Всем хорошо известно, что для поиска файлов и папок с помощью стандартных средств Windows в именах можно использовать подстановочные символы "?" (обозначает любой один символ) и "*" (обозначает любое число любых символов). Например, на рис. 5.12 представлен результат поиска файлов *.sys (все файлы с расширением sys) на диске С:.

Р РёСЃ. 5.12. Рспользование подстановочных символов РїСЂРё РїРѕРёСЃРєРµ файлов

В сценариях WSH можно производить поиск файлов (как и любого другого текста) с помощью гораздо более сложных правил для определения соответствий. Для этого используются регулярные выражения, которые определяют образец текста для поиска. Для задания этого образца используются литералы и метасимволы. Каждый символ, который не имеет специального значения в регулярных выражениях, рассматривается как литерал и должен точно совпасть при поиске. Метасимволы — это символы со специальным значением в регулярных выражениях. Описание наиболее часто используемых метасимволов приведено в табл. 5.14.

Перейти на страницу:

Андрей Попов читать все книги автора по порядку

Андрей Попов - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки kniga-online.club.


Windows Script Host для Windows 2000/XP отзывы

Отзывы читателей о книге Windows Script Host для Windows 2000/XP, автор: Андрей Попов. Читайте комментарии и мнения людей о произведении.


Уважаемые читатели и просто посетители нашей библиотеки! Просим Вас придерживаться определенных правил при комментировании литературных произведений.

  • 1. Просьба отказаться от дискриминационных высказываний. Мы защищаем право наших читателей свободно выражать свою точку зрения. Вместе с тем мы не терпим агрессии. На сайте запрещено оставлять комментарий, который содержит унизительные высказывания или призывы к насилию по отношению к отдельным лицам или группам людей на основании их расы, этнического происхождения, вероисповедания, недееспособности, пола, возраста, статуса ветерана, касты или сексуальной ориентации.
  • 2. Просьба отказаться от оскорблений, угроз и запугиваний.
  • 3. Просьба отказаться от нецензурной лексики.
  • 4. Просьба вести себя максимально корректно как по отношению к авторам, так и по отношению к другим читателям и их комментариям.

Надеемся на Ваше понимание и благоразумие. С уважением, администратор kniga-online.


Прокомментировать
Подтвердите что вы не робот:*
Подтвердите что вы не робот:*