- •Лабораторная работа №1 Теоретическая часть
- •Основные конструкции языка
- •Передача управления указанному командному файлу. После окончания выполнения вызываемого файла управление будет возвращено на строку, следующую за командой call.
- •Передача управления на указанную функцию в пределах исполняемого в данный момент командного файла.
- •Передача управления на метку
- •Сравнение двух операндов (строк или чисел)
- •Проверка существования файла
- •Проверка результата завершения последней отработавшей программы
- •Сдвиг влево переменных типа % на указанное число позиций
- •Манипуляция значением переменной
- •Лабораторная работа №1 Практическая часть
- •Лабораторная работа № 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
Сравнение двух операндов (строк или чисел)
Формат вызова:
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
)
Проверка существования файла
Формат вызова:
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
)
Проверка результата завершения последней отработавшей программы
Формат вызова:
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
)
Приостановка выполнения программы
Формат вызова:
PAUSE
Комментарий
Формат вызова:
REM <Текст комментария>
Вывод значения переменной на экран
Формат вызова:
SET <имя переменной>
Пример использования:
SET USERNAME
Выведет на экран имя текущего пользователя системы
Установка значения переменной
Формат вызова:
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
