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);
//Удаляем файл
Поделиться:
Популярные книги
Война. Krieg. 1941—1945. Произведения русских и немецких писателей
Проза:
военная проза
5.00
рейтинг книги
Воины
Фантастика:
фэнтези
7.00
рейтинг книги
Газлайтер. Том 15
15. История Телепата
Фантастика:
боевая фантастика
попаданцы
5.75
рейтинг книги
Дом глав Дюны
5.00
рейтинг книги
Меняя маски
1. Унесенный ветром
Фантастика:
боевая фантастика
попаданцы
9.22
рейтинг книги
Eroshort
Дом и Семья:
образовательная литература
3.40
рейтинг книги
Стрела времени (сборник)
Мир приключений изд. Правда
Фантастика:
научная фантастика
5.00
рейтинг книги
Час «Д»
2. Божий промысел по контракту
Фантастика:
юмористическое фэнтези
9.17
рейтинг книги
Царь Живых
Фантастика:
ужасы и мистика
6.25
рейтинг книги
Звездная карусель
Зарубежная фантастика
Фантастика:
научная фантастика
5.00
рейтинг книги
Встречи во мраке (Сборник)
Бестселлер
Детективы:
прочие детективы
7.00
рейтинг книги
Золотой век
Проза:
историческая проза
5.00
рейтинг книги
Варшавский договор
Детективы:
триллеры
5.00
рейтинг книги
Распря с веком. В два голоса
Документальная литература:
биографии и мемуары
5.00