Чтение онлайн

на главную

Жанры

Windows Script Host для Windows 2000/XP

Попов Андрей Викторович

Шрифт:

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

Листинг 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).

Замечание

Подробнее о ключах команды

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%
Имя, под которым регистрировался при входе в сеть пользователь

Так как имена каталогов, присутствующих в команде XCOPY, могут содержать пробелы, эти имена взяты в кавычки.

Сценарий WSH

Для создания нужных нам резервных копий можно также написать сценарий WSH (назовем этот сценарий Logoff.js), который, конечно, будет намного больше по объему, чем командный файл, но будет выводить сообщения в красивые графические диалоговые окна (рис. 11.21–11.23).

Сначала в сценарии Logoff.js создаются экземпляры объектов

WshShell
,
FileSystemObject
и
WshSpecialFolders
, после чего в переменную
SHomePath
заносится путь к каталогу с документами текущего пользователя (специальная папка с именем My Documents):

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

WshShell = WScript.CreateObject("WScript.Shell");

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

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

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

WshFldrs=WshShell.SpecialFolders;

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

SHomePath=WshFldrs.item("MyDocuments");

Путь к каталогу, в который будет производиться копирование документов, формируется с помощью переменной среды

%UserName%
; значение такой переменной извлекается c помощью метода
ExpandEnvironmentStrings
объекта
WshShell
:

Поделиться:
Популярные книги

Кодекс Охотника. Книга XXXIII

Винокуров Юрий
33. Кодекс Охотника
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Кодекс Охотника. Книга XXXIII

Мальвиль

Мерль Робер
Фантастика:
социально-философская фантастика
научная фантастика
альтернативная история
8.29
рейтинг книги
Мальвиль

Кодекс Охотника XXXI

Винокуров Юрий
31. Кодекс Охотника
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Кодекс Охотника XXXI

Приключения русского дебютанта

Штейнгарт Гари
Проза:
современная проза
5.00
рейтинг книги
Приключения русского дебютанта

На границе империй. Том 10. Часть 10

INDIGO
Вселенная EVE Online
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 10. Часть 10

Наномашины, внучок! Том 2

Новиков Николай Васильевич
2. Чего смотришь? Иди книгу читай
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Наномашины, внучок! Том 2

Ким

Киплинг Редьярд Джозеф
Приключения:
исторические приключения
7.62
рейтинг книги
Ким

Кодекс Крови. Книга V

Борзых М.
5. РОС: Кодекс Крови
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Крови. Книга V

Петля, Кадетский Корпус. Книга четвертая

Алексеев Евгений Артемович
4. Петля
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Петля, Кадетский Корпус. Книга четвертая

Гримуар темного лорда V

Грехов Тимофей
5. Гримуар темного лорда
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Гримуар темного лорда V

Кодекс Охотника. Книга ХХ

Винокуров Юрий
20. Кодекс Охотника
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Кодекс Охотника. Книга ХХ

Имперец. Том 1 и Том 2

Романов Михаил Яковлевич
1. Имперец
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Имперец. Том 1 и Том 2

Солнечный корт

Сакавич Нора
4. Все ради игры
Фантастика:
зарубежная фантастика
5.00
рейтинг книги
Солнечный корт

Черный Маг Императора 12

Герда Александр
12. Черный маг императора
Фантастика:
юмористическое фэнтези
попаданцы
аниме
сказочная фантастика
фэнтези
5.00
рейтинг книги
Черный Маг Императора 12