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);

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

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату