//Выводим запрос на запуск сразу всех программ
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:\Backup\Popov, а при выходе пользователя Kazakov — в каталог D:\Backup\Kazakov.
Самым быстрым решением поставленной задачи является создание командного файла Logoff.bat (листинг 11.11) и назначение его в качестве сценария выхода для всех пользователей. Результат работы этого пакетного файла будет виден в командном окне (рис. 11.20).
@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).
Подробнее о ключах команды XCOPY можно узнать из встроенной справки для этой команды. Для вывода этой справки на экран необходимо в командном окне запустить XCOPY с ключом /?; для вывода справки в текстовый файл нужно воспользоваться символом перенаправления вывода '>', например: XCOPY /? > spr.txt.
Пути к каталогу, где хранятся документы пользователя, и к каталогу, в который будет производиться копирование, формируются с помощью переменных среды %HomeDir%, %HomePath% и %UserName%. Описание этих и некоторых других переменных среды, которые определены в Windows, приведено в табл. 11.2.
Таблица 11.2. Переменные среды, полезные для использования в сценариях входа/выхода
| Переменная | Описание |
|---|---|
%COMSPEC% |
Путь к командному интерпретатору |
%HOMEDIR% |
Буква переопределенного диска на компьютере пользователя, которая ссылается на сетевой ресурс, содержащий личный каталог пользователя |
%HOMEDRIVE% |
Локальный, либо перенаправленный диск, на котором расположен личный каталог |
%HOMEPATH% |
Путь к личному каталогу |
%HOMESHARE% |
Имя каталога общего доступа, включающее личный каталог и локальный, либо переопределенный диск |
%OS% |
Операционная система, управляющая рабочей станцией |
%PROCESSOR_ARCHITECTURE% |
Архитектура процессора (например, х86) рабочей станции пользователя |
%SYSTEMDRIVE% |
Диск, на котором находится системный каталог Windows |
%SYSTEMROOT% |
Путь к системному каталогу Windows |
%PROCESSOR_LEVEL% |
Тип процессора рабочей станции пользователя |
%TEMP% |
Путь к каталогу для хранения временных файлов |
%USERDOMAIN% |
Домен, в котором зарегистрирован пользователь |
%USERNAME% |
Имя, под которым регистрировался при входе в сеть пользователь |