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

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

Жанры

Windows Script Host для Windows 2000/XP

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

Шрифт:

//Выделяем имя файла

SName=Files.item.Name;

//Проверяем, соответствует ли имя файла регулярному выражению

if (RegEx.test(SName)) {

 ColFind++; //Увеличиваем счетчик найденных файлов

 //Добавляем имя файла к переменной SFileNames

 SFileNames+=SName+ " \n";

}

В конце функции

FindFilesInFolder(Fold, RegEx)
на экран выводятся имена найденных файлов и их общее количество:

SItog="Найдено файлов: "+ColFind;

//Выводим на экран имена и количество найденных файлов

WScript.Echo(SFileNames+SItog);

Листинг 5.18. Поиск файлов, имена которых соответствуют регулярному выражению

/*******************************************************************/

/* Имя: FindRegExp.js */

/* Язык: JScript */

/* Описание: Поиск файлов, имена которых соответствуют заданному */

/* регулярному выражению */

/*******************************************************************/

//Объявляем переменные

var WshShell,FSO,Folder,ColFind,RegExp,SFileNames;

//Функция для поиска файлов в заданном каталоге

function FindFilesInFolder(Fold,RegEx) {

 var Files,SName; //Объявляем переменные

 ColFind=0; //Счетчик найденных файлов

 SFileNames=""; //Строка с именами файлов

 //Создаем коллекцию файлов в каталоге Fold

 Files=new Enumerator(Fold.Files);

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

 while (!Files.atEnd) {

//Выделяем имя файла

SName=Files.item.Name;

//Проверяем, соответствует ли имя файла регулярному

//выражению

if (RegEx.test(SName)) {

ColFind++; //Увеличиваем счетчик найденных файлов

//Добавляем имя файла к переменной SFileNames

SFileNames+=SName+"\n";

}

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

 }

 SItog="Найдено файлов: "+ColFind;

 //Выводим на экран имена и количество найденных файлов

 WScript.Echo(SFileNames+SItog);

}

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

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

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

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

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

//Создаем объект Folder для доступа к подкаталогу ForFind

//текущего каталога

Folder = FSO.GetFolder(WshShell.CurrentDirectory+"\\ForFind");

//Создаем регулярное выражение (объект RegExp)

RegExp=new RegExp("^[ПАИ].*\.txt$","i");

//Ищем файлы, имена которых соответствуют регулярному

//выражению RegExp в каталоге Folder

FindFilesInFolder(Folder,RegExp);

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

Перемещение файлов с ведением журнала действий

Поставим перед собой следующую задачу. Пусть в заданный каталог на жестком диске (например, C:\In) поступают из почтовой программы или по локальной сети файлы с различными расширениями. Требуется выделить из них все файлы с заданным расширением (например, 003) и перенести их в другой каталог (например, C:\Out). При этом необходимо вести журнал операций (log-файл), в который для каждого переносимого файла записывать следующую информацию: имя файла, дату и время его создания, дату и время перемещения файла. Структура log-файла (в нашем случае это файл C:\In\log.txt) должна быть следующей:

Имя файла (Дата и время создания) Дата и время перемещения

Например:

34556.003 (19/10/2002 10:45) 19/10/2002 11:02

43432_KL.003 (19/10/2002 10:45) 19/10/2002 11:02

45.003 (19/10/2002 10:45) 19/10/2002 11:02

...

Кроме этого, во время перемещения файлов на экран должна выводиться информация о том, какой именно файл обрабатывается, а после завершения работы сценария нужно напечатать общее количество перемещенных файлов (рис. 5.13).

Рис. 5.13. Информация о перемещении файлов

Поставленную задачу выполняет рассматриваемый ниже сценарий MoveLog.js; запускать этот сценарий следует в консольном режиме с помощью cscript.exe.

Пути к каталогу-источнику, в котором первоначально находятся файлы, и к целевому каталогу, в который будут перемещены эти файлы, хранятся соответственно в переменных

Source
и
Dest
:

var

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

Битва за звезды

Гамильтон Эдмонд Мур
20. Фантастический боевик
Фантастика:
космическая фантастика
7.14
рейтинг книги
Битва за звезды

Последний Паладин. Том 4

Саваровский Роман
4. Путь Паладина
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Последний Паладин. Том 4

Мир “Искателя” (сборник)

Брэдбери Рэй Дуглас
Журнал «Искатель»
Фантастика:
научная фантастика
7.00
рейтинг книги
Мир “Искателя” (сборник)

Песня сирены

Карр Филиппа
7. Дочери Альбиона
Любовные романы:
исторические любовные романы
7.88
рейтинг книги
Песня сирены

Савмак. Пенталогия

Михайлюк Виктор Сергеевич
Приключения:
исторические приключения
4.50
рейтинг книги
Савмак. Пенталогия

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

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

Один триллион долларов

Эшбах Андреас
Детективы:
триллеры
8.00
рейтинг книги
Один триллион долларов

Эхо Земли

Уильямс Шон
1. Сироты
Фантастика:
космическая фантастика
6.40
рейтинг книги
Эхо Земли

Софт. Тело (Software. Wetware)

Рюкер Руди
Проза:
контркультура
5.00
рейтинг книги
Софт. Тело (Software. Wetware)

Гримуар темного лорда VI

Грехов Тимофей
6. Гримуар темного лорда
Фантастика:
попаданцы
аниме
фэнтези
5.20
рейтинг книги
Гримуар темного лорда VI

Другие люди

Стейн Сол
2. Джордж Томасси
Проза:
современная проза
5.00
рейтинг книги
Другие люди

Второгодка. Книга 5. Презренный металл

Ромов Дмитрий
5. Второгодка
Фантастика:
городское фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Второгодка. Книга 5. Презренный металл

Вне закона

Брэнд Макс
Приключения:
вестерны
5.75
рейтинг книги
Вне закона

Двести лет вместе. Часть I. В дореволюционной России

Солженицын Александр Исаевич
Документальная литература:
публицистика
5.00
рейтинг книги
Двести лет вместе. Часть I. В дореволюционной России