Kniga-Online.club

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

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

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

// Вспомогательные функции 

//Выравнивание строки s вправо в поле длиной l символов

function RFillStr(l,s) {В 

В var ss,i,ll;

В ll=l-s.length;

В if (s.length>=l) {

В  return(s);

В } else {

В  ss=s;

В  for (i=1;i<=ll;i++) {

В В  ss=" "+ss;

В  }

В  return(ss);

В }

}

//Выравнивание строки s влево в поле длиной l символов

function LFillStr(l,s) {

В var ss,i,ll;

В ll=l-s.length;

В if (s.length>=l) {

В  return(s);

В } else {

В  ss=s;

В  for (i=1;i<=ll;i++) {

В В  ss=ss+" ";

В  }

В  return(ss);

В }

}

//Выравнивание строки s по центру в поле длиной l символов

function FillStr(l,s) {

В var ss,i,ll,s1,l2;

В ll=l-s.length;

В if (s.length>=l) {

В  return(s);

В } else {

В  ss=s;

В  l2=Math.round((l-s.length)/2);

В  ss=LFillStr(s.length+l2,s);

В  ss=RFillStr(l,ss);

В  return(ss);

В }

}

Удаление ненужных временных файлов с жесткого диска

Р’ результате некорректного завершения приложений РЅР° жестком РґРёСЃРєРµ часто остаются "бесхозные" временные файлы (СЃ расширением tmp), которые затем приходится удалять вручную. Весьма СѓРґРѕР±РЅРѕ было Р±С‹ удалять РІСЃРµ такие файлы сразу СЃРѕ всего жесткого РґРёСЃРєР°, РЅРµ заботясь Рѕ том, РІ каких каталогах РѕРЅРё находятся. Рспользуя стандартные средства операционной системы, можно сначала СЃ помощью пункта Найти (Find) меню РџСѓСЃРє (Start) составить СЃРїРёСЃРѕРє всех временных файлов (СЂРёСЃ. 5.9), затем выделить РІСЃРµ файлы РІ этом СЃРїРёСЃРєРµ Рё нажать комбинацию клавиш <Shift>+<Delete> (удаление файлов без помещения РІ РљРѕСЂР·РёРЅСѓ).

Однако если хотя бы один из временных файлов будет занят каким-либо приложением, то в доступе к нему будет отказано и процесс удаления прервется (рис. 5.10).

Поэтому для удаления с жесткого диска всех временных файлов мы напишем сценарий DelTmp.js (основная идея, которая используется в данном сценарии, позаимствована из статьи [6]).

Алгоритм работы сценария состоит в следующем:

□ в Блокноте (notepad.exe) создается новый файл для отображения в нем результатов работы;

□ на диске D: просматриваются подкаталоги всех уровней вложенности;

□ в каждом подкаталоге ищутся все временные файлы с расширением tmp;

□ для каждого найденного временного файла производится попытка удаления. В случае успеха в Блокноте печатается путь к файлу и слово "OK", если же удаляемый файл занят, то печатается путь к файлу и слово "Busy" ("Занят");

□ после просмотра всех каталогов в Блокноте печатается общее количество найденных временных файлов (рис. 5.11).

Рис. 5.9. Список всех временных файлов на диске D:

Рис. 5.10. Ошибка, возникающая при попытке удалить занятый файл 

Ртак, наиболее важными РІ сценарии являются: функция DelFilesInFolder(Fold, SExt), РІ которой РїСЂРѕРёСЃС…РѕРґРёС‚ попытка удаления РІ каталоге Fold всех файлов, имеющих расширение SExt, Рё рекурсивная (С‚.Рµ. содержащая обращение Рє самой себе) функция LoopSubFolders(Fold), РІ которой РїСЂРѕРёСЃС…РѕРґРёС‚ вызов функции DelFilesInFolder для подкаталогов каталога Fold.

Рис. 5.11. Результат работы сценария DelTmp.js

Рассмотрим сначала функцию DelFilesInFolder(Fold, SExt). Здесь сначала создается объект Enumerator с именем Files для доступа к коллекции всех файлов в каталоге Fold:

var Files, s, SPath, FileExt, Status;

Files=new Enumerator(Fold.Files);

после чего все элементы коллекции просматриваются в цикле while:

s="";

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

while (!Files.atEnd()) {

 …

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

}

Для текущего файла в коллекции выделяется его расширение, которое преобразуется к верхнему регистру:

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

SPath=Files.item().Path;

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

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

В случае совпадения расширения FileExt с расширением SExt в блоке try…catch производится попытка удаления текущего файла:

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

try {

В Status="Ok";

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

В Files.item().Delete();

} catch (e) {

 //Обрабатываем возможные ошибки

В if (Рµ != 0) {

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

В В Status="Busy";

В }

}

Таким образом, в переменной Status будет записан результат удаления файла: "OK" в случае успеха, и "Busy" в том случае, если удаляемый файл занят другим приложением. После этого полный путь к удаляемому файлу и значение переменной Status печатаются в окне Блокнота с помощью метода SendKeys объекта WshShell. Здесь только нужно учесть, что в имени файла могут встретиться символы, имеющие специальный смысл для метода SendKeys, поэтому предварительно нужно соответствующим образом заменить такие символы в имени файла:

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

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

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

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

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

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

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

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

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


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

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


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

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

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


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