}
/******************* Начало **********************************/
//Создаем объект 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
LoopSubFolders(
, в которой происходит вызов функции DelFilesInFolder
для подкаталогов каталога