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

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

Жанры

Windows Script Host для Windows 2000/XP

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

Шрифт:

 Source="C:\\In\\", //Путь к каталогу-источнику файлов для перемещения

 Dest="C:\\Out\\"; //Путь к целевому каталогу

В переменных

Mask
и
PathLog
записаны соответственно расширение файлов для перемещения и путь к log-файлу:

var

 Mask="003", //Расширение файлов для перемещения

 PathLog="C:\\In\\log.txt"; //Путь к log-файлу

Сначала в сценарии с помощью метода

FolderExists
объекта
FileSystemObject
проверяется наличие на диске каталога-источника; в случае отсутствия этого каталога выводится соответствующее сообщение и выполнение сценария прерывается:

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

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

//Проверяем наличие каталога-источника

if (!FSO.FolderExists(Source)) {

 //Выводим сообщение об отсутствии каталога-источника

 WScript.Echo("Каталог-источник", Source, "не существует.");

 WScript.Echo("Нажмите Enter...");

 WScript.StdIn.ReadLine;

 //Выходим из сценария

 WScript.Quit;

}

Аналогичным образом проверяется наличие целевого каталога:

//Проверяем наличие целевого каталога

if (!FSO.FolderExists(Dest)) {

 //Выводим сообщение об отсутствии целевого каталога

 WScript.Echo("Целевой каталог", Dest, "не существует.");

 WScript.StdIn.ReadLine;

 WScript.StdIn.ReadLine;

 //Выходим из сценария

 WScript.Quit;

}

После этого создается объект

Enumerator
(переменная
Files
) для доступа к коллекции всех файлов в каталоге-источнике:

//Создаем объект Folder для каталога-источника Fold=FSO.GetFolder(Source);

//Создаем объект Enumerator для доступа к коллекции файлов

//в каталоге-источнике

Files=new Enumerator(Fold.Files);

Операции записи информации в log-файл и непосредственно переноса файлов из одного каталога в другой реализованы соответственно в функциях

WriteLog
и
MoveFiles
.

В функции

WriteLog
после объявления переменных открывается log-файл в режиме добавления строк:

var s, ss, s1, d, File, FLog;

WScript.Echo(" ");

WScript.Echo("Записываем информацию в log-файл...");

//Открываем log-файл для добавления

FLog=FSO.OpenTextFile(PathLog, ForAppending, true);

Затем в цикле

while
происходит просмотр коллекции файлов в каталоге-источнике:

//Переходим к первому элементу коллекции файлов

Files.moveFirst;

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

while (!Files.atEnd) {

 //Извлекаем текущий файл из коллекции

 File=Files.item;

 //Переходим к следующему файлу в коллекции

 Files.moveNext;

}

Если файл подлежит перемещению (расширение этого файла совпадает с расширением файлов для перемещения), то определяется его имя (свойство Name), дата создания (свойство DateCreated) и текущая дата (объект Date), и в log-файл записывается соответствующая информация:

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

s=FSO.GetExtensionName(File.Name);

//Проверяем, совпадает ли расширение текущего файла

//с расширением файлов для перемещения

if (s==Mask) {

 //Выводим имя файла на экран

 WScript.Echo(" "+File.Name);

 //Определяем дату создания файла

 d=new Date(File.DateCreated);

 //Формируем строку ss для записи в log-файл

 ss=LFillStr(13,File.Name)

 s1="("+DateToStr(d)+" ";

 s1+=TimeToStr(d)+")";

 ss+=LFillStr(20,s1);

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

 d=new Date;

 ss+=DateToStr(d);

 ss+=" "+TimeToStr(d);

 //Записываем сформированную строку в log-файл

 FLog.WriteLine(ss);

}

Записываемая в log-файл строка формируется в нужном виде с помощью вспомогательных функций

LFillStr
(выравнивание строки влево в поле заданной длины),
DateToStr
(формирование из объекта Date строки формата ДД/ММ/ГГГГ) и
TimeTostr
(формирование из объекта Date строки формата ЧЧ:ММ).

В функции

MoveFiles
, как и в
WriteLog
, производится перебор в цикле
while
файлов каталога-источника (элементов коллекции Files). Перемещение файлов осуществляется с помощью последовательного применения методов
Copy
и
Delete
:

Files.moveFirst;

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

while (!Files.atEnd) {

 //Извлекаем текущий файл из коллекции

 File=Files.item;

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

 s=FSO.GetExtensionName(File.Name);

 //Проверяем, совпадает ли расширение текущего файла

 //с расширением файлов для перемещения

 if (s==Mask) {

//Выводим имя файла на экран

WScript.Echo(" "+File.name);

//Копируем файл в целевой каталог

File.Copy(Dest);

//Удаляем файл

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

Московское золото и нежная попа комсомолки. Часть Третья

Хренов Алексей
3. Летчик Леха
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Московское золото и нежная попа комсомолки. Часть Третья

Корсар

Русич Антон
Вселенная EVE Online
Фантастика:
боевая фантастика
космическая фантастика
6.29
рейтинг книги
Корсар

Хозяин Стужи

Петров Максим Николаевич
1. Злой Лед
Фантастика:
аниме
фэнтези
попаданцы
7.00
рейтинг книги
Хозяин Стужи

Кодекс Охотника. Книга XXXVIII

Винокуров Юрий
38. Кодекс Охотника
Фантастика:
фэнтези
боевая фантастика
попаданцы
юмористическое фэнтези
5.00
рейтинг книги
Кодекс Охотника. Книга XXXVIII

Убивать чтобы жить 6

Бор Жорж
6. УЧЖ
Фантастика:
боевая фантастика
космическая фантастика
рпг
5.00
рейтинг книги
Убивать чтобы жить 6

Тринадцатый XI

NikL
11. Видящий смерть
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Тринадцатый XI

Излом

Осадчук Алексей Витальевич
10. Последняя жизнь
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Излом

Слэпшот

Хоуп Ава
Невозможно устоять. Горячие романы Авы Хоуп
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Слэпшот

Гранит науки. Том 4

Зот Бакалавр
4. Герой Империи
Фантастика:
боевая фантастика
городское фэнтези
попаданцы
5.00
рейтинг книги
Гранит науки. Том 4

Лекарь Империи 8

Лиманский Александр
8. Лекарь Империи
Фантастика:
попаданцы
городское фэнтези
аниме
5.00
рейтинг книги
Лекарь Империи 8

Кодекс Охотника. Книга XIV

Винокуров Юрий
14. Кодекс Охотника
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Кодекс Охотника. Книга XIV

Первый среди равных. Книга XIII

Бор Жорж
13. Первый среди Равных
Фантастика:
аниме
фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Первый среди равных. Книга XIII

Дважды одаренный. Том V

Тарс Элиан
5. Дважды одаренный
Фантастика:
аниме
альтернативная история
городское фэнтези
5.00
рейтинг книги
Дважды одаренный. Том V

Кодекс Императора VI

Сапфир Олег
6. Кодекс Императора
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Кодекс Императора VI