Чтение онлайн

на главную - закладки

Жанры

Windows Script Host для Windows 2000/XP

Попов Андрей Викторович

Шрифт:

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

Status="Busy";

 }

}

Таким образом, в переменной

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

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

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

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

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

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

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

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("^","{^}");

Поделиться:
Популярные книги

Требую развода! Что значит- вы отказываетесь?

Мамлеева Наталья
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Требую развода! Что значит- вы отказываетесь?

Мастер 4

Чащин Валерий
4. Мастер
Фантастика:
героическая фантастика
боевая фантастика
попаданцы
5.00
рейтинг книги
Мастер 4

Газлайтер. Том 4

Володин Григорий
4. История Телепата
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Газлайтер. Том 4

Отмороженный 11.0

Гарцевич Евгений Александрович
11. Отмороженный
Фантастика:
боевая фантастика
рпг
попаданцы
фантастика: прочее
фэнтези
5.00
рейтинг книги
Отмороженный 11.0

Товарищ "Чума" 4

lanpirot
4. Товарищ "Чума"
Фантастика:
городское фэнтези
альтернативная история
5.00
рейтинг книги
Товарищ Чума 4

Петля, Кадетский корпус. Книга вторая

Алексеев Евгений Артемович
2. Петля
Фантастика:
боевая фантастика
попаданцы
аниме
4.80
рейтинг книги
Петля, Кадетский корпус. Книга вторая

Эволюционер из трущоб

Панарин Антон
1. Эволюционер из трущоб
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Эволюционер из трущоб

Неучтенный элемент. Том 7

NikL
7. Антимаг. Вне системы
Фантастика:
фэнтези
5.00
рейтинг книги
Неучтенный элемент. Том 7

Чужак из ниоткуда 3

Евтушенко Алексей Анатольевич
3. Чужак из ниоткуда
Фантастика:
космическая фантастика
альтернативная история
5.00
рейтинг книги
Чужак из ниоткуда 3

Черный Маг Императора 18

Герда Александр
18. Черный маг императора
Фантастика:
юмористическое фэнтези
аниме
сказочная фантастика
фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Черный Маг Императора 18

На границе империй. Том 8

INDIGO
12. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 8

Развод. Без права на ошибку

Ярина Диана
Любовные романы:
современные любовные романы
короткие любовные романы
5.00
рейтинг книги
Развод. Без права на ошибку

Цеховик. Книга 2. Движение к цели

Ромов Дмитрий
2. Цеховик
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Цеховик. Книга 2. Движение к цели

Тайны затерянных звезд. Том 3

Лекс Эл
3. Тайны затерянных звезд
Фантастика:
боевая фантастика
космическая фантастика
космоопера
5.00
рейтинг книги
Тайны затерянных звезд. Том 3