//Создаем коллекцию всех файлов в каталоге 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.

Таблица 5.14. Некоторые метасимволы, использующиеся в регулярных выражениях

Символы Описание
Следующий символ будет являться специальным символом или, наоборот, литералом. Например, n означает символ 'n', а ' ' означает символ новой строки. Последовательности \ соответствует символ '', а ( — символ '('
^ Начало строки
$ Конец строки
Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату