Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа N1(Операционные системы).doc
Скачиваний:
3
Добавлен:
10.11.2019
Размер:
434.18 Кб
Скачать
    1. Передача управления на метку

Формат вызова:

GOTO <имя метки>

Пример использования:

@ECHO OFF

IF %1 == Y GOTO YES

IF %1 == N GOTO NO

EXIT

:YES

ECHO YES!

GOTO END

:NO

ECHO NO!

GOTO END

:END

ECHO THE END

    1. Сравнение двух операндов (строк или чисел)

Формат вызова:

IF [/I] [NOT] <операнд 1> <оператор > <операнд 2> <команда или блок>

Где

/I – игнорировать регистр операндов

NOT – оператор НЕ

<оператор> может принимать значения:

EQU или ==

Равно

NEQ

не равно

LSS

Меньше

LEQ

меньше или равно

GTR

Больше

GEQ

больше или равно

Пример использования:

@ECHO OFF

REM Запрашиваем имя с клавиатуры

SET /P NAME=PLEASE ENTER NAME:

REM Обратите внимание, как сравниваются строки:

IF "%NAME%" == "MEDVEDEV" ECHO HE IS PRESIDENT

IF "%NAME%" == "PUTIN" ECHO HE IS PRIME MINISTER

REM Запрашиваем возраст

SET /P AGE=PLEASE ENTER YOUR AGE:

REM Если возраст меньше 14, то Вы ребенок

IF %AGE% LSS 14 ECHO YOU ARE BABY

REM Если возраст больше 14,

IF %AGE% GEQ 14 (

REM И возраст меньше 21, то Вы подросток

IF %AGE LSS 21 ECHO YOU ARE TEEN

REM И возраст больше 21,то Вы взрослый

IF %AGE% GEQ 21ECHO YOU ARE MATURE

)

    1. Проверка существования файла

Формат вызова:

IF [NOT] EXIST <имя файла> <команда или блок>

Пример использования:

IF NOT EXIST SETTINGS.DAT ECHO PLEASE RUN SETUP UTILITY FIRST

IF EXIST %1 (

ECHO Trying to backup %1 to archive %2

CALL BACKUP.BAT %1 %2

)

    1. Проверка результата завершения последней отработавшей программы

Формат вызова:

IF [NOT] ERRORLEVEL<число> <команда или блок>

Пример использования:

@ECHO OFF

REM Вызываем архиватор

WINRAR A backup.rar *.doc

REM Если код завершения равен 0, то значит архивирование прошло успешно

IF ERRORLEVEL 0 ECHO Backup done !

REM Если код завершения не равен 0, значит произошла какая-то ошибка

IF NOT ERRORLEVEL 0 (

ECHO Backup failed !

REM Проверка на ошибку записи на диск

IF ERRORLEVEL 5 ECHO Write error

REM Проверка на нехватку памяти

IF ERRORLEVEL 8 ECHO Not enough memory

REM Проверка на отмену операции пользователем

IF ERRORLEVEL 255 ECHO Operation was cancelled by user

)

    1. Приостановка выполнения программы

Формат вызова:

PAUSE

    1. Комментарий

Формат вызова:

REM <Текст комментария>

    1. Вывод значения переменной на экран

Формат вызова:

SET <имя переменной>

Пример использования:

SET USERNAME

Выведет на экран имя текущего пользователя системы

    1. Установка значения переменной

Формат вызова:

SET [/A | /P] <имя переменной>=<значение>|<подсказка>

Ключ /A говорит о том, что <значение> является арифметическим выражением, которое должно быть вычислено и результат этого вычисления должен быть занесен в качестве значения переменной.

Арифметическое выражение может содержать следующие символы:

( )

Группировка

- + * / %

Арифметические операторы

!

Оператор НЕ

&

Оператор И

|

Оператор ИЛИ

^

Оператор НЕ ИЛИ

<< >>

Двоичный сдвиг влево или вправо

Пример использования:

SET /A V1=2 * (6 + 4)

REM Из V1 вычитаем 10%

SET /A V2= %V1% - 10%

REM Сдвиг %V2% на 4 бита в право (умножение на 8)

SET /A V3= %V2% >>4

REM Умножение переменной V3 на 10

SET /A V3=*10

Ключ /P говорит о том, что значение переменной должно быть введено с клавиатуры, при этом на экран выдается текстовая <подсказка>.

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

Пример использования:

@ECHO

REM Устанавливаем значение переменной

SET FILE=C:\TEST\STATISTICS.TXT

REM Вводим возраст с клавиатуры

SET /P AGE=Please enter your age:

REM Вычисляем примерный возраст в днях

SET /A AGE_IN_DAYS=365 * %AGE%

REM Выводим примерный возраст в днях на экран

ECHO Your age is about %AGE_IN_DAYS% days