Интерпретатор командной строки ОС MS Windows. Часть 2. Язык интерпретатора и командные файлы. 5сем_лаба2_Коноплев_ПИнЗ-120. Интерпретатор командной строки ос ms windows. Часть Язык интерпретатора и командные файлы
Скачать 478 Kb.
|
Министерство науки и высшего образования Российской Федерации Муромский институт (филиал) Федерального государственного бюджетного образовательного учреждения высшего образования «Владимирский государственный университет имени Александра Григорьевича и Николая Григорьевича Столетовых» Факультет ИТР Кафедра ПИн ЛАБОРАТОРНАЯ РАБОТА №2 По дисциплине «Операционные системы» Тема Интерпретатор командной строки ОС MS Windows. Часть 2. Язык интерпретатора и командные файлы Руководитель: Астафьев А. В. (фамилия, инициалы) (подпись) (дата) Студент ПИнз - 120 (группа) Коноплев М. С. (фамилия, инициалы) (подпись) (дата) Муром 2022 Лабораторная работа №2 Тема: Интерпретатор командной строки ОС MS Windows. Часть 2. Язык интерпретатора и командные файлы Цель работы: знакомство с языком интерпретатора командной строки ОС MS Windows и командными файлами Задание: 1. Ознакомиться с теоретической частью. 2. Повторить практические примеры и прокомментировать каждую строку кода так, чтобы было ясно что она делает. Ответить на вопросы: что принимает как входные параметры, что является результатом. Каждый пример оформить отдельным пакетным файлом *.bat. 3. Реализовать пакетный файл (*.bat) согласно задания из таблицы заданий. 4. Реализовать приложение, позволяющее выбрать пакетный файл и запустить его на исполнение на языке высокого уровня. Выполнение работы: Задание 2 Пример 1 Здесь и далее создавать bat-файлы мы будем в блокноте и при сохранении расширение указывать «*bat». Запишем в файл deltmp.bat следующие команды: C:\ CD %TEMP% DEL /F *.tmp Запустим его на выполнение. Тем самым мы удалим все файлы во временной директории Windows. bat-файл: Результат выполнения: Пример 2: Bat-файл: REM Следующие две команды будут дублироваться на экране ... :: эта строка – такой же комментарий, как и предыдущая DIR C:\ ECHO OFF :: А остальные уже не будут DIR D:\ PAUSE Результат выполнения: Пример 3 Bat-файл: ECHO ON :: Команда DIR C:\ дублируется на экране DIR C:\ :: А команда DIR D:\ — нет @DIR D:\ Pause Результат выполнения: Пример 4 Bat-файл: ::Если в самом начале написать "@ECHO OFF", то дублироваться не будут ::все команды @ECHO OFF :: С помощью команды «ECHO» выведем сообщение на экран ECHO Привет! PAUSE Результат выполнения: Пример 5 Bat-файл: :: Команда ECHO. (точка должна следовать непосредственно за словом ::"ECHO") выводит на экран пустую строку. Например: @ECHO OFF ECHO Привет! ECHO. ECHO Пока! PAUSE Результат выполнения: Пример 6 Bat-файл: @ECHO OFF :: Используя механизм перенаправления ввода/вывода ::(символы > и >>), можно направить сообщения, ::выводимые командой ECHO, в определенный ::текстовый файл ECHO Привет! > hi.txt ECHO Пока! >> hi.txt PAUSE Результат выполнения: Пример 7 Bat-файл: ::С помощью такого метода можно, скажем, заполнять файлы-протоколы с ::отчетом о произведенных действиях. Например: @ECHO OFF REM Попытка копирования XCOPY D:\ Инст_5_семестр D:\PROGRAMS /s :: Добавление сообщения в файл report.txt в случае ::удачного завершения копирования IF NOT ERRORLEVEL 1 ECHO Успешное копирование >> report.txt PAUSE Результат выполнения: Пример 8 Bat-файл: @ECHO OFF ::Очистим экран CLS ECHO Файл %0 копирует каталог %1 в %2 XCOPY %1 %2 /S PAUSE Результат выполнения: Пример 9 Bat-файл: @ECHO OFF CLS :: Создание переменной MyVar SET MyVar=Привет :: Изменение переменной SET MyVar=%MyVar% ECHO Значение переменной MyVar: %MyVar% :: Удаление переменной MyVar SET MyVar= ECHO Значение переменной WinDir: %WinDir% PAUSE Результат выполнения: Пример 10 Bat-файл: @ECHO OFF :: Создадим переменную А, и поместим в нее значение "Раз" SET A=Раз :: Создадим переменную В, и поместим в нее значение "Два" SET B=Два :: Создадим переменную С, соединим переменные А и В, и поместим в нее :: значение в С SET C=%A%%B% :: Выведем на экран значения всех переменных ECHO %A% ECHO %B% ECHO %C% PAUSE Результат выполнения: Пример 11 Bat-файл: @ECHO OFF SET A=Раз SET B=Два :: Не следует при соединении строк использовать знак "+", иначе он :: воспримется в качестве символа SET C=A+B ECHO Переменная C=%C% SET D=%A%+%B% ECHO Переменная D=%D% PAUSE Результат выполнения: Пример 12 Bat-файл: @ECHO OFF :: В переменной M будет храниться сумма. Ключ /А позволяет :: рассмотреть значения переменных, как числа SET /A M=%1+%2 ECHO Сумма %1 и %2 равна %M% :: Удалим переменную M SET M= PAUSE Результат выполнения с указанием параметров: Пример 13 Bat-файл: @ECHO OFF :: Для ввода значения переменной М с клавиатуры используем ключ /Р :: Также в квадратных скобках выведем подсказку SET /P M=[введите M] :: Выведем на экран значение переменной М ECHO Результат: %M% PAUSE Результат выполнения: Пример 14 Bat-файл: @ECHO OFF COPY %1 %2 GOTO Label1 ECHO Эта строка никогда не выполнится :Label1:: Продолжение выполнения DIR %2 ::После того, как в этом файле мы доходим до команды GOTO Label1 :: его выполнение продолжается со строки "Продолжение выполнения" PAUSE Результат выполнения: Пример 15 Bat-файл: @ECHO OFF :: Для вывода на экран наибольшего из двух параметров, с которыми ::запущен командный файл, следует использовать оператор GTR :: В скобках укажем сначала: «если условие в переданном пользователем параметре 1 верно, то выведется 1-й параметре»; а затем: «иначе выведется на экран параметр, указанный пользователем в условии 2» if %1 GTR %2 (echo %1 ) else (echo %2) PAUSE Результат выполнения: Пример 16 Bat-файл: @ECHO OFF :: если параметр 1 идентичен параметру 2, то выведем соответствующее ::сообщение IF %1==%2 ECHO Параметры совпадают! :: если в параметре 1 имеется значение «windows», то выведем ::соответствующее сообщение IF %1==windows ECHO значение первого параметра – windows PAUSE Результат выполнения: Пример 17 Bat-файл: @ECHO OFF :: В командном файле, чтобы объявить переменную ставим 2 знака %, а не :: один, как в командной строке :: Присвоим переменной i значение и выведем его на экран FOR %%i IN (Раз, Два, Три) DO ECHO %%i PAUSE Результат выполнения: Задание 3. Реализуем пакетный файл *bat согласно задания и сохраним его в корень диска D. Вычислить значение функции f(x). Значения x и C вводятся пользователем с клавиатуры. 𝑥 + 𝑥3, если 𝑥 > 0 𝑓(𝑥) = 5, если 𝑥 = 0 77 ∗ 𝑥 + (𝑥 ∗ 𝐶)2 + 𝐶 иначе Bat-файл: @ECHO OFF :: Для ввода значения переменной с клавиатуры используем ключ /Р :: Также в квадратных скобках выведем подсказку SET /P X=[введите значение X] :: Выведем на экран значение переменной ECHO X = %X% SET /P C=[введите значение C] ECHO C = %C% :: Пропишем логику с помощью оператора if…else IF %X% GTR 0 (SET /A F = x*x*x+x) ELSE (SET /A F = 77 * x + "(x * C)^2" + C) IF %X% EQU 0 SET /A F = 5 ELSE (SET /A F = 77 * x + "(x * C)^2" + C) ECHO F(x) = %F% PAUSE Задание 4 Создадим приложение Windows Forms. В форму поместим из панели элементов кнопку button и диалоговое окно OpenFileDialog. Кнопку назовем «Выберите файл для выполнения». Подключим библиотека System.Diagnostics для использования класса Process. Создадим экземпляр класса Process для того, чтобы инициировать выполнение нового процесса, включающего наш пакетный файл. В обработчике событий кнопки пропишем соответствующий код: Process myProcess = new Process(); //открывает диалоговое окно: openFileDialog1.ShowDialog(); //позволяет выбрать файл в диалю окне: myProcess.StartInfo.FileName = openFileDialog1.FileName; //позволяет запустить выбранный файл myProcess.Start(); Запустим программу: Нажмем кнопку «Выберите файл для исполнения». В открывшемся диалоговом окне выберем файл laba2.bat и нажмем «Открыть»: Введем значения X и C. Программа вычислит значение f(x) и выведет результат на экран: Вывод: я ознакомился с языком интерпретатора командной строки ОС MS Windows и командными файлами. Научился писать командные файлы *bat. Также научился создавать приложение на языке С#, позволяющее пользователю выбрать командный файл и запустить его. |