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

var

 FSO,         //Экземпляр объекта FileSystemObject

 WshShell,    //Экземпляр объекта WshShell

 WshFldrs,    //Экземпляр объекта WshSpecialFolders

 PathStartup, //Путь к папке выборочной автозагрузки

 Folder,      //Экземпляр объекта Folder для папки

              //выборочной автозагрузки

 Files,       //Коллекция файлов в папке выборочной автозагрузки

 File,        //Экземпляр объекта File для ярлыка в папке

              //выборочной автозагрузки

 Res,         //Результат нажатия кнопок в диалоговых окнах

 IsRunAll;    //Логический флаг, указывающий, надо ли запустить

              //сразу все программы из автозагрузки

//Инициализируем константы для диалоговых окон

var vbYesNo=4,vbQuestion=32,vbYes=6,vbOkOnly=0,vbMinimizedFocus=2;

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

WshShell=WScript.CreateObject('Wscript.Shell');

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

WshFldrs=WshShell.SpecialFolders;

//Определяем путь к папке выборочной автозагрузки

PathStartup=WshFldrs.item('AllUsersStartMenu')+'\Выборочная автозагрузка\';

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

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

//Создаем объект Folder для папки выборочной автозагрузки

Folder=FSO.GetFolder(PathStartup);

//Создаем коллекцию файлов каталога выборочной автозагрузки

Files=new Enumerator(Folder.Files);

//Выводим запрос на запуск сразу всех программ

Res=WshShell.Popup('Запустить сразу все программы?',0,

  'Выборочная автозагрузка',vbQuestion+vbYesNo);

//Определяем, нажата ли кнопка Да

IsRunAll=(Res==vbYes);

//Цикл по всем файлам каталога выборочной автозагрузки

while (!Files.atEnd()) {

 //Создаем объект File для текущего элемента коллекции

 File=Files.item();

 //Обнуляем переменную Res

 Res=0;

 if (!IsRunAll) //Программы нужно запускать по одной

  //Выводим запрос на запуск одной программы

  Res=WshShell.Popup('Запустить '+File.Name+'?',0,

   'Выборочная автозагрузка',vbQuestion+vbYesNo);

 if ((IsRunAll) || (Res==vbYes))

  //Запускаем текущую программу в минимизированном окне

  WshShell.Run('''+File.Path+''',vbMinimizedFocus);

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

 Files.moveNext();

}

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

Резервное копирование документов пользователя при окончании сеанса работы 

Для каждого пользователя Windows ХР в каталоге Documents and Settings автоматически создается личная папка, имя которой совпадает с именем этого пользователя. В подкаталоге 'Мои документы' (My Documents) этой папки по умолчанию сохраняются все созданные пользователем документы. Для того чтобы всегда иметь резервную копию документов пользователей, можно написать универсальный сценарий выхода, в котором будет происходить копирование всех файлов и подкаталогов из пользовательского каталога 'Мои документы' в другой каталог с именем пользователя. В нашем примере резервные копии документов будут сохраняться в каталоге D:Backup, т.е. при выходе пользователя Popov все его документы скопируются в каталог D:BackupPopov, а при выходе пользователя Kazakov — в каталог D:Backup Kazakov.

Командный файл

Самым быстрым решением поставленной задачи является создание командного файла Logoff.bat (листинг 11.11) и назначение его в качестве сценария выхода для всех пользователей. Результат работы этого пакетного файла будет виден в командном окне (рис. 11.20).

Листинг 11.11. Командный файл-сценарий выхода, позволяющий производить : резервное копирование документов пользователя

@ECHO OFF

REM Имя: Logoff.bat

REM Описание: BAT-файл, выполняющий резервное копирование

REM           документов пользователя

ECHO Окончание сеанса пользователя %UserName%.

ECHO.

ECHO Начинаем копирование документов в каталог D:Backup\%UserName%...

XCOPY /C /D /E /I /Y '%HomeDrive%%HomePath%Мои документы' D:Backup\%UserName %

ECHO.

ECHO Копирование документов завершено.

PAUSE

Как мы видим, вся работа файла Logoff.bat заключается в вызове команды XCOPY для нужных каталогов:

XCOPY /С /D /Е /I /Y '%HomeDrive%%HomePath%Мои документы' 'D:Backup\%UserName %'

Рис. 11.20. Результат работы сценария выхода Logoff.bat для пользователя Popov

Здесь для XCOPY указаны несколько ключей, которые позволяют:

? не прерывать копирование при возникновении ошибки (ключ );

? копировать только те файлы, которые были изменены (ключ /D);

?  копировать все подкаталоги, включая пустые (ключ );

?  создавать, при необходимости, каталог, в который производится копирование (ключ /I);

?  перезаписывать файлы без подтверждения пользователя (ключ /Y).

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

0

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

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