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);
//Удаляем файл
Поделиться:
Популярные книги
Дракон
5. Совсем не герой
Фантастика:
фэнтези
попаданцы
9.31
рейтинг книги
Мечников. Из доктора в маги
1. Жизнь Лекаря с нуля
Фантастика:
альтернативная история
аниме
фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Я – Легенда 2: геном хищника
2. Я - Легенда!
Фантастика:
боевая фантастика
рпг
фантастика: прочее
попаданцы
5.00
рейтинг книги
Мл. сержант. Назад в СССР. Книга 3
3. Второй шанс
Фантастика:
альтернативная история
6.40
рейтинг книги
Сирийский рубеж
5. Рубеж
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Бастард
1. Династия
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Разведчик. Заброшенный в 43-й
Героическая фантастика
Фантастика:
боевая фантастика
попаданцы
альтернативная история
5.93
рейтинг книги
Последний Герой. Том 3
3. Последний герой
Фантастика:
попаданцы
альтернативная история
фантастика: прочее
5.00
рейтинг книги
Антимаг его величества
1. Модификант
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Мастер 3
3. Мастер
Фантастика:
героическая фантастика
попаданцы
аниме
5.00
рейтинг книги
Газлайтер. Том 28
28. История Телепата
Фантастика:
боевая фантастика
аниме
попаданцы
5.00
рейтинг книги
Отщепенец
1. Отщепенец
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Воин-Врач
1. Воин-Врач
Фантастика:
попаданцы
альтернативная история
историческое фэнтези
6.00
рейтинг книги
Хозяин Стужи 2
2. Злой Лед
Фантастика:
аниме
фэнтези
попаданцы
5.75