
- •Министерство образования и науки российской федерации федеральное агентство по образованию
- •Кафедра систем автоматизированного проектирования
- •Введение
- •1.2.2. Пользовательский интерфейс
- •1.2.3. Файловые системы
- •1.3. Порядок выполнения работы
- •1.4. Содержание отчета
- •Цель работы.
- •1.5. Контрольные вопросы и задания
- •2. Лабораторная работа № 2 «Утилиты ос Windows xp»
- •2.1. Цель работы:
- •2.2. Теоретическая часть
- •2.2.1. Программа получения сведений о системе
- •2.2.2. Программа архивации данных
- •2.2.3. Программа проверки диска
- •2.2.4. Программа дефрагментации дисков
- •2.2.5. Программа очистки жесткого диска
- •2.2.6. Программа «Восстановление системы»
- •2.3. Порядок выполнения работы
- •2.4. Содержание отчета
- •2.5. Контрольные вопросы и задания
- •3.2.2. Команды для работы с файлами и папками
- •3.2.3. Внутренние команды
- •3.2.4. Команды (поддержки) пакетных файлов
- •If exist *.Rpt echo Отчет получен.
- •3.3. Порядок выполнения работы
- •3.4. Содержание отчета
- •Цель работы.
- •3.5. Контрольные вопросы и задания
- •4. Лабораторная работа № 4 «Настройка и оптимизация среды Windows xp»
- •4.1. Цель работы:
- •4.2. Теоретическая часть
- •4.2.1. Индивидуальная настройка рабочего стола
- •4.2.2. Диспетчер задач (Task Manager)
- •4.2.3. Планировщик заданий (Task Scheduler)
- •4.2.4. Средства поддержки виртуальной памяти
- •4.2.5. Другие средства оптимизации
- •4.3. Порядок выполнения работы
- •4.4. Содержание отчета
- •Цель работы.
- •4.5. Контрольные вопросы и задания
- •5.2.2. Синхронизация потоков
- •5.2.3. Создание многопоточных приложений
- •5.2.4. Синхронизация порожденного потока с родительским
- •5.2.5. Управление приоритетом обслуживания потока
- •5.2.6. Приостановка и продолжение работы потока
- •5.3. Порядок выполнения работы
- •5.4. Содержание отчета
- •Цель работы.
- •5.5. Контрольные вопросы и задания
- •Приложение 1. Оформление отчета по лабораторной работе
- •1. Цель работы.
- •Приложение 2. Оформление реферата по выбранной теме
- •Приложение 3. Фрагменты текста программы
- •Void __fastcall Synhr1();// вызывается
- •Void __fastcall Synhr2();// вызывается
- •Int X,y; // Хранит координаты шарика
- •Библиографический список (Учебники и учебные пособия)
- •(Общие вопросы)
- •(Графический интерфейс пользователя)
- •(Семейство Windows)
If exist *.Rpt echo Отчет получен.
3. endlocal – окончание использования локального окружения в пакетной программе, восстановление значений переменных среды, имевшихся до выполнения соответствующей команды setlocal.
Синтаксис:
endlocal
Примечания:
команду endlocal необходимо указать в сценарии и пакетном файле. Команда endlocal не выполняется при использовании вне сценария или пакетного файла;
в конце пакетного файла присутствует неявная команда endlocal;
если расширения командного процессора разрешены (установлено по умолчанию), команда endlocal восстанавливает состояния (т. е. разрешение или запрещение) расширений команд, существовавшие до выполнения соответствующей команды setlocal.
Пример. В пакетном файле можно локально изменить переменные среды:
@echo off
rem Эта программа запускает приложение superapp в сети,
rem записывает вывод в файл и загружает этот файл в программу
rem Блокнот.
setlocal
path=g:\programs\superapp;%path%
call superapp>c:\superapp.out
endlocal
start notepad c:\superapp.out
exit
4. for – запуск некоторой команды для каждого файла из заданного множества.
Синтаксис:
for {%переменная|%%переменная} in (множество) do команда [ПараметрыКоманднойСтроки]
Параметры:
{%переменная|%%переменная} – обязательный параметр. Замещаемый параметр. Используйте %переменная для выполнения команды for из командной строки. Используйте %%переменная для выполнения команды for в пакетном файле. Переменные учитывают регистр и могут быть представлены со значением альфа, например, %A, %B или %C;
(множество) – обязательный параметр. Задает один или несколько файлов, каталогов, диапазон значений или текстовых строк, подлежащих обработке заданной командой. Скобки являются обязательными;
команда – обязательный параметр. Задает команду, которая будет выполнена для каждого файла, каталога диапазона значений или текстовой строки, включенной в указанный параметр (множество);
ПараметрыКоманднойСтроки – задает параметры командной строки, которые используются с указанной командой;
/? – отображение справки в командной строке.
Примечания.
Использование программы for. Команда for может быть использована в пакетном файле или непосредственно из командной строки.
Использование параметров командной строки пакетного файла. Перечисленные ниже атрибуты применяются к команде for:
в команде for переменная %%переменная (или %%переменная) будет заменяться текстовой строкой из заданного параметра множество, пока параметр команда не обработает все файлы этого множества;
имена параметров переменная команды for учитывают регистр буквы, они являются глобальными и одновременно может быть активно не больше 52 переменных;
для обозначения параметра переменная можно использовать любые символы, кроме цифр 0–9, чтобы не было конфликта с параметрами пакетных файлов %0–%9. Для простых пакетных файлов вполне достаточно обозначений с одним символом, например %%f;
в сложных пакетных файлах могут быть использованы и другие обозначения для параметра переменная.
Задание множества файлов. Параметр множество может представлять группу файлов или несколько групп файлов. Для задания групп файлов можно использовать подстановочные знаки (* и ?). Следующие множества файлов являются допустимыми:
(*.doc)
(*.doc *.txt *.me)
(jan*.doc jan*.rpt feb*.doc feb*.rpt)
(ar??1991.* ap??1991.*)
Когда используется команда for, первое значение в параметре множество заменяет параметр %%переменная (или %переменная), а затем для обработки этого значения выполняется указанная команда. Это продолжается до тех пор, пока не будут обработаны все файлы (или группы файлов), которые соответствуют значению параметра множество.
Использование ключевых слов in и do. In и do не являются параметрами, но они требуются для работы команды for. Если какое-то из слов пропущено, на экран будет выведено сообщение об ошибке.
5. goto – в пакетной программе передает управление Windows XP в строку, определенную меткой. Когда метка найдена, выполнение продолжается со следующей за ней строки.
Синтаксис:
goto метка
Параметры:
метка – строка в пакетной программе, к которой выполняется переход;
/? – отображение справки в командной строке.
Примечания.
Работа с расширениями команды. Если расширения команды включены (по умолчанию они включены) и в команде goto используется метка :EOF, управление будет передано в конец файла текущего пакетного сценария для выхода из него без назначения метки. Когда используется команда goto с меткой :EOF, перед меткой должно быть вставлено двоеточие. Пример: goto :EOF.
Использование допустимых значений метки. Метка может включать пробелы, но не может включать другие разделители, такие как точка с запятой или знак равенства. В команде goto используются только первые восемь знаков метки. Например, следующие метки эквивалентны и рассматриваются как :hithere0:
:hithere0
:hithere01
:hithere02
Совпадение меток в пакетных программах. Метка, заданная в команде, должна соответствовать метке в тексте пакетной программы. Метка в пакетной программе должна начинаться с двоеточия (:). В Windows XP строка пакетной программы, начинающаяся с двоеточия (:), опознается как метка и не обрабатывается как команда. Если строка начинается с двоеточия, все присутствующие в ней команды обработаны не будут. Если в пакетном файле не содержится заданной метки, программа будет остановлена, а на экран будет выведено следующее сообщение:
Метка не найдена.
Использование команды goto для обработки условий. Команду goto можно использовать совместно с другими командами для выполнения операций с условиями.
Пример. Следующая пакетная программа форматирует диск в дисководе A как системный диск. Если форматирование прошло успешно, команда goto передает управление Windows XP на метку :end.
echo off
format a: /s
if not errorlevel 1 goto end
echo Ошибка при форматировании.
:end
?echo конец пакетной программы.
6. if – обработка условий в пакетных программах.
Синтаксис:
if [not] errorlevel число команда [else выражение]
if [not] строка1==строка2 команда [else выражение]
if [not] exist имя_файла команда [else выражение]
Если расширения командного процессора разрешены, следует использовать следующий синтаксис:
if [/i] строка1 оп_сравнения строка2 команда [else выражение]
if cmdextversion число команда [else выражение]
if defined переменная команда [else выражение]
Параметры:
not – задает выполнение команды только в случае невыполнения условия;
errorlevel число – условие выполняется, если предыдущая команда, обработанная интерпретатором команд Cmd.exe, завершилась с кодом, равным или большим числа;
команда – команда, которая должна быть обработана в случае выполнения условия;
строка1==строка2 – условие выполняется, если строки строка1 и строка2 совпадают. Строки могут быть заданы явно или могут быть пакетными переменными (например, %1). Явно заданные строки нет необходимости заключать в кавычки;
exist имя_файла – условие выполняется, если существует файл с именем имя_файла;
оп_сравнения – трехзначный оператор сравнения. В табл.8 перечислены допустимые значения оп_сравнения.
Таблица 8
Оператор |
Описание |
EQU |
Равно |
NEQ |
не равно |
LSS |
меньше |
LEQ |
меньше или равно |
GTR |
больше |
GEQ |
больше или равно |
/i – сравнение строк без учета регистра знаков. Параметр /i можно использовать в конструкции string1==string2 команды if. Эти сравнения являются общими. Если и строка1, и строка2 состоят из цифр, строки преобразовываются в числа и выполняется сравнение чисел;
cmdextversion число – условие выполняется, только если номер внутренней версии, связанный с расширениями командного процессора Cmd.exe, равен или больше числа. Первая версия имела номер 1. Номер версии увеличивается на 1 при внесении в расширения командного процессора значительных изменений. Условие с cmdextversion не выполняется, если расширения командного процессора запрещены (по умолчанию они разрешены);
defined переменная – условие выполняется, если переменная определена.
выражение – команда и все ее параметры для обработке в командной строке при выполнении оператора else;
/? – отображение справки в командной строке.
7. pause – приостанавливает выполнение пакетной программы с выводом сообщения об ожидании нажатия пользователем любой клавиши.
Синтаксис:
pause
Примечания.
При запуске команды pause выводится следующее сообщение:
Для продолжения нажмите любую клавишу...
Если при работе пакетной программы была нажата комбинация CTRL+C для ее остановки, то на экран будет выведено следующее сообщение:
Завершить выполнение пакетного файла [Y(да)/N(нет)]?
Если была нажата клавиша Y (подтверждение), пакетная программа будет закончена и управление вернется операционной системе. По этой причине команда pause может быть вставлена перед разделом пакетного файла, который потребуется пропустить. Команда pause приостанавливает выполнение пакетной программы, аналогичное действие можно сделать, нажав комбинацию клавиш CTRL+C и Y.
Пример. Для создания пакетной программы запроса пользователю о необходимости заменить диск в одном из дисководов, введите:
@echo off
:begin
copy a:*.*
echo Please put a new disk into drive A
pause
goto begin
В этом примере все файлы с диска A копируются в текущий каталог. После этого на экран выводится запрос вставить другой диск в дисковод А, затем команда pause приостанавливает работу программы, чтобы пользователь мог сменить диск и нажать любую клавишу для продолжения процесса. Данная пакетная программа работает как бесконечный цикл. Команда goto BEGIN возвращает управление на начало командного файла. Для завершения работы этой пакетной программы требуется нажать комбинацию CTRL+C и Y.
8. rem – добавляет комментарии в пакетные файлы или файлы настройки.
Синтаксис:
rem [текст]
Параметры:
текст – задает строку символов, используемую в качестве комментария.
/? – отображение справки в командной строке.
Примечания.
Вывод комментариев с помощью команды echo. Команда rem не выводит комментарии на экран. Для вывода комментариев на экран необходимо использовать команду echo on в пакетных файлах или в файле Config.nt.
Ограничения на комментарии в пакетных файлах. В тексте комментариев нельзя использовать символы перенаправления (< или >) или канала (|).
Использование команды rem для добавления вертикальных пробелов. Вместо команды rem, которая без текста комментария применяется для добавления вертикальных пробелов в пакетный файл, можно просто использовать пустые строки. При обработке пакетной программы пустые строки пропускаются.
Пример. Следующий пример показывает применение комментариев и вертикальных пробелов в пакетном файле.
@echo off
rem Эта пакетная программа форматирует и проверяет новые диски.
rem Она называется CHECKNEW.BAT.
rem
echo Вставьте новый диск в дисковод B.
pause
format b: /v
chkdsk b:
9. setlocal – начало области задания для определения переменных среды в пакетном файле. Локальное окружение используется до тех пор, пока не встретится команда endlocal или не будет достигнут конец пакетного файла.
Синтаксис:
setlocal {enableextension | disableextensions}{enabledelayedexpansion | disabledelayedexpansion}
Параметры:
enableextension – включает расширения командного процессора до появления соответствующей команды endlocal, вне зависимости от состояния расширений командного процессора перед командой setlocal;
disableextensions – выключает расширения командного процессора до появления соответствующей команды endlocal, вне зависимости от состояния расширений командного процессора перед командой setlocal;
enabledelayedexpansion – включает расширения переменной среды с задержкой до появления соответствующей команды endlocal, вне зависимости от состояния расширений командного процессора перед командой setlocal;
disabledelayedexpansion – выключает расширения переменных среды с задержкой до появления соответствующей команды endlocal, вне зависимости от состояния расширений командного процессора перед командой setlocal;
/? – вывод справки в командной строке.
Примечания.
Использование команды setlocal. Команда setlocal не выполняется при использовании вне сценария или пакетного файла.
Изменение переменных среды. Используйте команду setlocal для изменения переменных среды при выполнении пакетного файла. Изменения среды, выполненные после setlocal, являются локальными для пакетного файла. Cmd.exe восстанавливает первоначальные параметры при обнаружении команды endlocal или достижении конца пакетного файла.
Допускается использование нескольких команд setlocal и endlocal в пакетной программе (так называемых, вложенных команд).
Проверка расширений командного процессора в пакетных файлах. Команда setlocal устанавливает переменную ERRORLEVEL. При выполнении аргументов {enableextension | disableextensions} или {enabledelayedexpansion | disabledelayedexpansion} переменная ERRORLEVEL имеет значение 0. В противном случае ее значение – 1. Этим можно воспользоваться в пакетных программах для проверки доступности расширений командного процессора, например:
verify other 2>nul
setlocal enableextensions
if errorlevel 1 echo Включение расширений командного процессора невозможно
Так как команда cmd не устанавливает значение переменной ERRORLEVEL, когда расширения командного процессора отключены, команда verify устанавливает переменную ERRORLEVEL в ненулевое значение при использовании этой команды с недопустимым аргументом. Если используется команда setlocal с аргументами {enableextension | disableextensions} или {enabledelayedexpansion | disabledelayedexpansion} и значение переменной ERRORLEVEL не 1, расширения командного процессора недоступны.
10. shift – изменяет положения пакетных параметров в пакетных файлах.
Синтаксис:
shift
Примечания.
Использование параметра командной строки shift с расширениями командного процессора. Если расширения командного процессора разрешены (используются по умолчанию), команда shift поддерживает ключ /n, который указывает команде начинать сдвиг с n-го аргумента, где n – число от нуля до восьми. Например: shift /2 сдвинет %3 на %2, %4 на %3 и т. д. %0 и %1 останутся неизменными.
Работа команды shift. Команда shift изменяет значения замещаемых параметров %0 - %9 путем копирования каждого параметра в предыдущий. Другими словами, значение %1 копируется в %0, значение %2 – в %1 и т. д. Такой прием оказывается полезным при написании пакетных файлов, выполняющих одну и ту же операцию над любым числом параметров.
Работа более чем с 10 пакетными параметрами. Команда shift также может быть использована для создания пакетных программ, воспринимающих более 10 параметров. В командной строке такой программы можно задать более 10-ти параметров, при этом все параметры, следующие за десятым (то есть за переменной %9) будут последовательно помещены в эту переменную %9.
Использование %* с командой shift. Команда shift не влияет на пакетный параметр %*.
Смещение параметров в обратном направлении. Команды, выполняющей обратный сдвиг не существует. После сдвига параметров командой shift начальное значение первого параметра (%0) не может быть восстановлено.
Пример. В следующем пакетном файле Mycopy.bat показано, как использовать команду shift с произвольным числом пакетных параметров. Файл копирует набор файлов в заданный каталог. Пакетные параметры представлены аргументами имени файла и каталога.
@echo off
rem MYCOPY.BAT копирует произвольное число файлов
rem в каталог.
rem Используется следующий синтаксис:
rem mycopy dir файл1 файл2 ...
set todir=%1
:getfile
shift
if "%1"=="" goto end
copy %1 %todir%
goto getfile
:end
set todir=
echo Работа закончена