}

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

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

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

//Открываем файл rep.txt

RepFile = FSO.OpenTextFile('rep.txt', ForWriting, true);

//Определяем текущую дату и время

MDate = new Date();

//Записываем дату и время в отчет

RepFile.WriteLine('Дата отчета: ' + MDate);

RepFile.WriteLine();

//Вызываем функцию LoopDrives

LoopDrives();

//Закрываем файл rep.txt

RepFile.Close();

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

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

//Запускаем Блокнот (notepad.exe) и открываем в нем файл rep.txt

WshShell.Run('notepad.exe rep.txt');

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

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

//Выравнивание строки 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 для подкаталогов каталога

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

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

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