- •Лабораторный практикум.
- •Часть II
- •Лабораторная работа №5. Организация пакетных файлов и сценариев в ос Windows xp
- •Введение
- •Задание 5.1. Команда Set
- •Содержание задания
- •Задание 5.2. Команды Rem, Echo
- •Содержание задания
- •Задание 5.3. Утилита For
- •Содержание задания
- •Задание 5.4. Команда If
- •Содержание задания
- •Задание 5.5. Команда Goto
- •Содержание задания
- •Задание 5.6. Команда Call
- •Содержание задания
- •Варианты для заданий 5.1, 5.6.
- •Задание 5.7. Команды Setlocal, Endlocal
- •Содержание задания
- •Задание 5.8. Создание пакетного файла, реализующего определенную последовательность действий в ос Windows xp
- •Варианты для задания 5.8.
- •Лабораторная работа №6. Мониторинг, оптимизация и аудит ос Windows xp
- •Введение
- •Задание 6.1. Программные модули Msinfo32, Taskmgr.Exe, Dxdiag.Exe, Msconfig.Exe
- •Содержание задания
- •Лабораторная работа №7. Организация консоли администрирования в ос Windows xp
- •Введение
- •Задание 7.1. Изменение параметров и способов настройки консоли администрирования mmc
- •Содержание задания
- •Задание 7.2. Добавление различных элементов и компонентов к дереву консоли администрирования mmc
- •Содержание задания
- •Задание 7.3. Создание нового вида панели задач консоли администрирования mmc
- •Содержание задания
- •Задание 7.4. Добавление элементов и компонентов дерева консоли в виде списка ярлыков в меню «Избранное»
- •Содержание задания
- •Задание 7.5. Ознакомление с оснасткой «Локальные пользователи и группы»
- •Содержание задания
- •Задание 7.6. Взаимосвязь утилиты «Учетные записи пользователей» с оснасткой «Локальные пользователи и группы» при смене типа учетной записи
- •Содержание задания
- •Задание 7.7. Возможности оснастки «Локальные пользователи и группы» при работе с профилями пользователей
- •Содержание задания
- •Задание 7.8. Основные возможности оснастки «Редактор объекта групповой политики»
- •Содержание задания
- •Задание 7.9. Возможности оснастки «Групповая политика» при настройке локального узла
- •Содержание задания
- •Задание 7.10. Возможности оснасток, предназначенных для диагностики, мониторинга, настройки и оптимизации
- •Содержание задания
- •Задание 7.11. Возможности оснастки «Просмотр событий»
- •Содержание задания
- •Лабораторная работа №8. Работа с Реестром ос Windows xp
- •Введение
- •Подготовка к выполнению лабораторной работы
- •Задание 8.1. Изучение основных возможностей системного модуля «Редактор Реестра» ос Windows xp на конкретных примерах
- •Содержание задания
- •Задание 8.2. Изучение некоторых специальных возможностей Реестра ос Windows xp в системном модуле «Редактор Реестра» на конкретных примерах.
- •Содержание задания
- •Изучение возможностей конфигурирования ос Windows xp посредством специальных настроек Реестра, твиков и скриптов на его основе, направленных на оптимизацию работы системы.
- •Задание 8.3. Конфигурирование контекстного меню служебного программного средства «Мой компьютер» ос Windows xp посредством применения твика Реестра.
- •Содержание задания
- •Задание 8.4. Конфигурирование ос Windows xp с целью оптимизации ее работы и увеличения быстродействия.
- •Содержание задания
- •Библиографический список
- •Приложение 1.
- •Приложение 2. Стандартные консоли ос Windows xp
- •Приложение 8.1. Оптимальная конфигурация служб ос Windows xp
Задание 5.1. Команда Set
Команда Set предназначена для отображения и установки переменных среды в ОС Windows XP.
Переменная среды́ — текстовая переменная операционной системы, хранящая какую-либо информацию — например, данные о настройках системы.
Ниже перечислены переменные среды Windows 7 со значениями на моем компьютере.
ALLUSERSPROFILE=C:\ProgramData
APPDATA=C:\Users\Sergey\AppData\Roaming
com.adobe.versioncue.client.applocale=ru_RU
com.adobe.versioncue.client.appname=AdobeDrive
com.adobe.versioncue.client.appversion=1.0.0
CommonProgramFiles=C:\Program Files\Common Files
CommonProgramFiles(x86)=C:\Program Files (x86)\Common Files
CommonProgramW6432=C:\Program Files\Common Files
COMPUTERNAME=SERGEYPC
ComSpec=C:\Windows\system32\cmd.exe
FARADMINMODE=1
FARHOME=H:\Distr\Far 1.705 Rus\Far30b3000.x86.20121208
FARLANG=Russian
FARLOCALPROFILE=C:\Users\Sergey\AppData\Local\Far Manager\Profile
FARPROFILE=C:\Users\Sergey\AppData\Roaming\Far Manager\Profile
FP_NO_HOST_CHECK=NO
HOMEDRIVE=C:
HOMEPATH=\Users\Sergey
LOCALAPPDATA=C:\Users\Sergey\AppData\Local
LOGONSERVER=\\SERGEYPC
NUMBER_OF_PROCESSORS=4
OS=Windows_NT
Path=C:\Program Files (x86)\Far;C:\Program Files (x86)\Borland\Delphi7\Bin;C:\Program Files (x86)\Borland\Delphi7\Projects\Bpl\;C:\Program Files (x86)\Borland\Delphi for .NET Preview\aspx\bin\;C:\Program Files (x86)\Borland\Delphi for .NET Preview\aspx\framework\;C:\Program Files (x86)\Borland\Delphi for .NET Preview\bin\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\;C:\Program Files\Microsoft SQL Server\100\Tools\Binn\;C:\Program Files\Microsoft SQL Server\100\DTS\Binn\;C:\Program Files\MATLAB\R2010b\runtime\win64;C:\Program Files\MATLAB\R2010b\bin;C:\Program Files (x86)\Haskell\bin;H:\ghc\ghc-6.10.1\bin;C:\Program Files (x86)\Java\jre7\bin\;C:\Program Files\Java\jdk1.7.0_09\bin\;
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
PROCESSOR_ARCHITECTURE=AMD64
PROCESSOR_IDENTIFIER=AMD64 Family 16 Model 4 Stepping 3, AuthenticAMD
PROCESSOR_LEVEL=16
PROCESSOR_REVISION=0403
ProgramData=C:\ProgramData
ProgramFiles=C:\Program Files
ProgramFiles(x86)=C:\Program Files (x86)
ProgramW6432=C:\Program Files
PROMPT=$P$G
PSModulePath=C:\Windows\system32\WindowsPowerShell\v1.0\Modules\
PUBLIC=C:\Users\Public
SESSIONNAME=Console
SystemDrive=C:
SystemRoot=C:\Windows
TEMP=C:\Users\Sergey\AppData\Local\Temp
TMP=C:\Users\Sergey\AppData\Local\Temp
USERDOMAIN=SergeyPC
USERNAME=Sergey
USERPROFILE=C:\Users\Sergey
VBOX_INSTALL_PATH=C:\Program Files\Oracle\VirtualBox\
VBROKERDIR=C:\Inprise\vbroker
VS100COMNTOOLS=C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\Tools\
windir=C:\Windows
Некоторые переменные среды
Список переменных среды Windows можно узнать, набрав в командной строке: set или нажав кнопку «Переменные среды» на вкладке «Дополнительно» в диалоговом окне «Свойства системы» («Мой компьютер»→"Свойства").
Имя |
Назначение |
Пример значения |
%ALLUSERSPROFILE% |
Указывает путь до папки общих документов и настроек, общих для всехпользователей. |
C:\Documents And Settings\All Users |
%APPDATA% |
Указывает путь до папки, в которой хранятся настройки некоторых программ текущего пользователя. |
C:\Documents And Settings\Администратор\Application Data |
%CLIENTNAME% |
Переменная определена только в среде удаленного подключения к рабочему столу. Хранит имя компьютера (%COMPUTERNAME%) клиента удаленного доступа. |
MyPC |
%COMMONPROGRAMFILES% |
Указывает путь до папки, в которой хранятся общие для установленных программ файлы. |
C:\Program Files\Common Files |
%COMPUTERNAME% |
Хранит имя компьютера в локальной сети. |
Начальник |
%COMSPEC% |
Хранит путь до текущего командного интерпретатора Windows. |
C:\Windows\System32\cmd.exe |
%HOMEDRIVE%, %SYSTEMDRIVE% |
Хранит имя системного диска. |
C: |
%HOMEPATH%, %USERPROFILE% |
Хранит путь до домашней папки пользователя |
C:\Documents And Settings\Администратор |
%WINDIR% |
Хранит путь до папки, в которую установлена Windows |
C:\Windows |
%SYSTEMROOT% |
Хранит путь до системной папки (где хранится ядро и т. п.) |
C:\Windows |
%PROGRAMFILES% |
Хранит путь до папки с установленными приложениями |
C:\Program Files |
%SESSIONNAME% |
Хранит имя пользовательского сеанса. В локальном сеансе имеет значение Console, в среде удаленного подключения к рабочему столу протоколом TCP/IP имеет вид RDP-Tcp#<номер сеанса>. |
Console, RDP-Tcp#1 |
Синтаксис команды Set: set";
Set [переменная=[строка]],
где параметр:
переменная — задает имя переменной, значение которой требуется присвоить или изменить.
строка — задает строковое значение для указанной переменной.
Команда SET поддерживает два дополнительных ключа:
SET /A выражение
SET /P variable=[promptString]
Ключ /A указывает, что строка справа от знака равенства является числовым выражением, значение которого вычисляется. Обработчик выражений очень прост и поддерживает следующие операции, перечисленные в порядке убывания приоритета (Табл. 3).
Таблица . Операции обработчика выражений команды Set
№ п.п. |
Операция |
Описание |
|
|
( ) |
группировка |
|
|
! ~ - |
унарные операторы |
|
|
* / % + |
арифметические операторы |
|
|
<< >> |
двоичный сдвиг |
|
|
& |
двоичное И |
|
|
^ |
двоичное исключающее ИЛИ |
|
|
| |
двоичное ИЛИ |
|
|
= *= /= %= += -= &= ^= |= <<= >>= |
присвоение |
|
|
, |
разделитель операторов |
При использовании любых логических или двоичных операторов необходимо заключить строку выражения в кавычки. Любые нечисловые строки в выражении рассматриваются как имена переменных среды, значения которых преобразуются в числовой вид перед использованием. Если переменная с указанным именем не определена в системе, вместо нее подставляется нулевое значение. Это позволяет выполнять арифметические операции со значениями переменных среды, причем не нужно вводить знаки % для получения значений. Если команда SET /A вызывается из командной строки, а не из пакетного файла, она выводит окончательное значение выражения. Слева от любого оператора присваивания должно стоять имя переменной среды. Числовые значения рассматриваются как десятичные, если перед ними не стоит префикс 0x для шестнадцатеричных чисел, и 0 для восьмеричных чисел. Например, числа 0x12, и 022 обозначают десятичное число 18. Обратите внимание на запись восьмеричных числе: 08 и 09 не являются допустимыми числами, так как в восьмеричной системе исчисления цифры 8 и 9 не используются. Если команда с ключом /a вызывается из командной строки, а не из пакетного файла, она выводит окончательное значение выражения.
Ключ /P позволяет установ;%ить значение переменной для входной строки, введенной пользователем. Показывает указанное приглашение promptString перед чтением введенной строки. Приглашение promptString может быть пустым.
Подстановка переменной среды может быть расширена следующим образом: %PATH:str1=str2% расширит действие переменной среды PATH, заменяя каждое вхождение "str1" в расширенном результате на "str2". "str2" может быть пустой строкой для эффективного удаления вхождений "str1" из расширенного вывода. "str1" может начинаться со звездочки, и в этом случае это будет соответствовать любому началу расширенного вывода до первого вхождения оставшейся части "str1". Можно также использовать строки расширения.
%PATH:~10,5%
расширит действие переменной среды PATH, затем использует только 5
символов, которые начинаются с 11-го символа (пропустив 10) расширенного
результата. Если длина не указана, по умолчанию используется оставшееся
значение переменной. Если оба значения (длина и число пропускаемых символов) отрицательны, следующим используемым значением будет длина значения переменной среды, добавленной к указанному значению пропуска или указанной длины.
%PATH:~-10%
извлечет последние 10 символов переменной PATH.
%PATH:~0,-2%
извлечет все символы переменной PATH, за исключением 2-х последних.
Наконец, добавлена поддержка связывания времени выполнения для переменных среды окружения. По умолчанию эта поддержка отключена. Ключ /V командной строки CMD.EXE позволяет включать и выключать ее. Связывание времени выполнения для переменных среды окружения полезно при обходе ограничений раннего связывания, которое происходит при первом чтении текстовой строки, а не при ее выполнении. Следующий пример демонстрирует возникающую проблему при использовании раннего связывания переменных:
set VAR=before
if "%VAR%" == "before" (
set VAR=after
if "%VAR%" == "after" @echo Тело внутреннего оператора сравнения
)
Данное сообщение не будет выводиться, т.к. %VAR% в ОБОИХ выражениях if подставляется в момент первого использования в первом if, в том числе и в тело первого ветвления if, которое является составным выражением. В if внутри составного выражения в действительности сравниваются значения "before" и "after", что заведомо ложно. Следующий пример демонстрирует подобную ошибку:
set LIST=
for %i in (*) do set LIST=%LIST% %i
echo %LIST%
в данном случае список файлов текущей папки никогда не будет построен. Вместо этого, значением переменной LIST будет имя последнего найденного файла. И вновь, это случилось потому, что %LIST% подставляется всего один раз - в момент обработки выражения FOR, когда список еще пуст. Фактически, приведенный фрагмент эквивалентен следующему примеру:
for %i in (*) do set LIST= %i
в котором имя последнего найденного файла сохраняется в переменной LIST.
Связывание времени выполнения для переменных среды окружения происходит при использовании специального символа (восклицательного знака), обозначающего проведение сопоставления во время выполнения. Если включена поддержка связывания времени выполнения, то для достижения ожидаемых результатов приведенные выше фрагменты должны быть изменены следующим образом:
set VAR=before
if "%VAR%" == "before" (
set VAR=after
if "!VAR!" == "after" @echo Тело внутреннего оператора сравнения
)
set LIST=
for %i in (*) do set LIST=!LIST! %i
echo %LIST%
При включенной расширенной обработке команд доступны несколько переменных среды, которые не отображаются в списке, отображаемом при вызове команды SET. Значения этих переменных вычисляются динамически каждый раз при их извлечении. Если пользователь явно задает переменные с одним из этих имен, то это определение перекрывает соответствующее динамическое определение, описанное ниже:
%CD% - раскрывается в строку текущей директории.
%DATE% - раскрывается в текущую дату, используя тот же формат команды DATE.
%TIME% - раскрывается в текущую дату, используя формат команды TIME.
%RANDOM% - раскрывается в случайное десятичное число между 0 и 32767.
%ERRORLEVEL% - раскрывается в текущее значение ERRORLEVEL
%CMDEXTVERSION% - раскрывается в текущее значение версии расширенной обработки команд.
%CMDCMDLINE% - раскрывается в исходную командную строку, которая вызвала командный процессор.
Таблица . Динамические значения команды Set
Значение |
Описание действия |
|
%Cd% раскрывается в строку текущей директории |
|
%Date% раскрывается в текущую дату |
|
%Time% раскрывается в текущее время |
%Random% |
раскрывается в случайное десятичное число в диапазоне от 0 до 32767 |
%Errorlevel% |
раскрывается в текущее значение ErrorLevel |
%Cmdextversion% |
раскрывается в текущее значение версии расширенной обработки команд |
%Cmdcmdline% |
раскрывается в исходную командную строку, которая вызвала текущее окно командной оболочки |
