«Введение в информационные технологии» Семинар №10 Тема: «Командный интерпретатор cmd» План занятия Командный интерпретатор cmd 1. 2. 3. 4. 5. 6. Запуск и выход из интерпретатора Исполняемые файлы command.com и cmd.exe Команда и код завершения Символ разделения команд & Группировка команд (&&, ||) Список команд, команда справки help Потоки ввода-вывода 1. 2. 3. 4. 5. 6. Вывод данных на экран, экранирование символов (^) Конвейер команд (|) Потоки ввода/вывода Перенаправление потоков (>, >>) Специальное устройство nul Чтение данных c клавиатуры (set /P) Сценарий cmd 1. 2. 3. 4. 5. 6. 7. Файл сценария cmd и bat Комментарий rem Запуск сценария Запуск программ в новом окне (start) Вызов внешнего сценария (call) Передача параметров сценарию в аргументах командной строки Подавление вывода команд @ и @echo off Переменные 1. 2. 3. 4. 5. 6. Объявление переменных (set) Подстановка переменных (%%) Отсутствие типизации переменных Специальные переменные (%1..%9, %*) Переменные окружения Специальные переменные %CD%, %DATE%, %TIME%, %RANDOM% %PATH% Операции 1. Команды set, set /A , set /P 2. Справка помощи help set 3. Арифметические операции +, -, *, /, % Проверка условий 1. Конструкция if/else. Пример: if "%P%" EQU "0" ( 1 echo equals to 0 ) else if %P% LSS 0 ( echo lesser than 0 ) else ( echo greater than 0 ) 2. Сравнение переменных (==, EQU, NEQ, LSS, LEQ, GTR, GEQ) 3. Проверка файлов (EXIST) Циклы и ветвления 1. Оператор цикла for FOR %variable IN (set) DO command [command-parameters] FOR /L %variable IN (start,step,end) DO command [command-parameters] 2. Оператор завершения выполнения exit 3. Метки (:), оператор перехода goto. Пример: @echo off if "%1" EQU "" goto usage echo параметр1: %1 goto end :usage echo Нет первого параметра exit 1 :end Задания 1. Выполнить по порядку и проанализировать все команды приведенные ниже в примерах 2. Скрипт hello.bat Программа запрашивает и считывает с консоли имя, затем выводит на экран строку приветствия. 3. Скрипт power.cmd Программа для подсчета степени целого числа. Входные данные (число и степень) передаются в аргументах командной строки, результат возведения выводится на экран. Если степень или число не заданы, выводить справочную информацию. Цикл для подсчета степени организовать с помощью оператора перехода goto. 4. Игра “угадай число” guess.cmd В начале игры программа загадывает случайное число в пределах от 1 до 100. Задача игрока - отгадать это число с 8 попыток. После каждой попытки программа подсказывает больше загаданное число или меньше предполагаемого. 5. Все программы должны быть запакованы в архив seminar10.zip (или rar) и высланы преподавателю Примеры команд cmd help help echo echo Hello echo Hello > nul echo Hello ^> null echo. 2 echo Hello & echo. & echo World set /P name="You name: " & echo Hello, %name% echo current directory: %CD% echo "%DATE% %TIME%" set /A %RANDOM%%100 set /A (5+2-3)/2*5 for /L %i in (0,1,10) do @echo %i dir for /L %i in (50,-1,0) do @echo %i >> test.txt type test.txt | more type test.txt | sort | more dir /w echo Test Message > test.txt type test.txt dir /b dir /b | find "test.txt" for %f in (*.txt) do echo %f for %f in (*.txt) do (echo File %f: & type %f) findstr "^T.*t" * del test.txt exit 3