Работа с командным интерфейсом. Пакетные командные файлы

advertisement
Практическая работа №2
Работа с командным интерфейсом. Пакетные командные файлы
Цель работы: Развитие профессиональных навыков работы с пакетными командными файлами.
1. Определение и назначение командного файла
2. Команды пакетной обработки
3. Переменные в командных файлах
Определение и назначение командного файла
Командные (пакетные) файлы - особая категория исполняемых файлов. Командные файлы (скрипты,
сценарии, батники) - это обычные текстовые файлы с расширением .bat или .cmd, строки которых
представляют собой специальные команды командного процессора (интерпретатора команд ) и/или
имена исполняемых файлов.
Для операционных систем DOS и Windows9X в качестве интерпретатора команд использовался
командный процессор command.com, для всех остальных ОС семейства Windows ( NT/2k/XP/Vista/7/8
и старше) -cmd.exe. Несмотря на непрерывное совершенствование средств создания и выполнения
сценариев с использованием объектно-ориентированных языков, обычная командная строка и
простые командные файлы, по-прежнему остаются основным инструментом для выполнения
рутинных действий, диагностики сетевых проблем, автоматизации процессов резервного
копирования и т.п. При всех недостатках реализации командного процессора в Windows,
достойной альтернативы ему нет, и очевидно в ближайшем будущем, не будет.
Пакетный файл (англ. batch file) — текстовый файл в MS-DOS, OS/2 или Windows, содержащий
последовательность команд, предназначенных для исполнения командным интерпретатором. После запуска
пакетного файла, программа-интерпретатор (как правило, COMMAND.COM или cmd.exe) читает его строка за
строкой и последовательно исполняет команды
Расширение: *.bat (от англ. batch - "пакет", "группа"). Запуск командного файла осуществляется так же, как
запуск исполняемой программы, то есть, указывается имя файла и, если требуется, параметры.
Назначение: BAT-файлы служат для организации взаимодействия пользователей с прикладными
программами.
Состав: текст, который интерпретируется командным процессором. Строки этого текста могут представлять
собой:
 внешние или внутренние команды ОС;
 обращения к исполняемым программам *.COM или *.EXE, и вызовы других командных файлов;
 команды для управления выдачей на экран, а также для организации ветвлений и циклов;
 метки, на которые совершается переход при выполнении заданного в файле условия.
 Каждая команда находится на отдельной строке.
2. Команды пакетной обработки.
а) REM-комментарий в тексте файла. Обычно используют, чтобы временно убрать из текста какую-либо
команду. Формат: REM [любая строка]
б) ECHO -вывод на экран сообщений. Формат: ECHO [ON или OFF или Сообщение]
Параметры ON и OFF включают и выключают выдачу на экран системных сообщений ("эха"). Команда ECHO
OFF используется, чтобы не "засорять" экран при исполнении BAT-файла. Произвольная строка после ECHO
понимается как сообщение и без изменений выводится на экран. Пустая строка обозначается одной точкой.
Примеры:
echo. - Перейти к следующей строке;
echo Программа не найдена! - Выдает на экран сообщение "Программа не найдена!".
в) @. Может быть только первым символом строки и подавляет ее выдачу на экран. Используется только в
пакетном режиме. Пример:
@echo off - Выключаем "эхо"; из-за символа @ сама команда echo off тоже не выводится на экран; этой
строкой обычно начинаются командные файлы.
г) PAUSE - приостанавливает вывод на экран, выводит сообщение "Нажмите любую клавишу..." и ждет
нажатия любой клавиши. Параметров не имеет.
д) IF позволяет проверять условие и выполнять ветвление в зависимости от результата проверки.
Общий вид команды: IF [NOT] [условие] [действие], где "действие" - любая команда, выполняемая, если
истинно условие. Условие записывается в одной из трех форм, поэтому команда IF имеет три формата.
Формат 1. Проверка кода завершения последней перед оператором IF команды. Используется конструкция
следующего вида: IF ERRORLEVEL число
Любая программа может выработать в момент своего окончания собственный код завершения, который
доступен другим программам через переменную с именем ERRORLEVEL. Большинство команд и программ
при нормальном завершении устанавливают errorlevel=0. Задав условие if errorlevel 1, Вы определите, что
оно будет выполнено, если программа вырабатывает код завершения больший, либо равный 1.
Формат 2. Проверка наличия файла в каталоге. Оператор IF имеет вид: IF EXIST имя файла
Команда проверяет, существует ли файл с заданным именем. При обнаружении файла условие считается
выполненным. Можно использовать маску - тогда условие выполнено, если найден хотя бы один подходящий
файл.
Формат 3. Сравнение двух строк. Оператор имеет вид: IF [строка_1]==[строка_2]
Условие выполняется, если строки 1 и 2 совпадают. Чтобы застраховаться от случая, когда одна из строк
оказывается пустой, обе строки заключают в одинаковые символы, например, в квадратные скобки.
Любое из этих трех условий может задаваться со знаком логического отрицания NOT. При этом истинность
условия трактуется в обратном смысле.
Примеры:
if exist c:\autoexec.bat type c:\autoexec.bat
если в головном каталоге диска c: есть файл autoexec.bat, вывести его на экран;
if not exist c:\WORK\*.* echo Нет файлов!
если в каталоге WORK нет ни одного файла, вывести соответствующее сообщение;
format a:
if errorlevel 1 echo Форматирование прошло не безупречно!
если программа format установила errorlevel больше нуля,сообщить об ошибке;
if %A%==Yes cls
если переменная с именем A равна строке 'Yes', очистить экран.
Аналогично команда IF может использоваться из командной строки.
е) GOTO позволяет передавать управление на заданную метку Формат команды: GOTO метка
Метка начинается со знака : Пример:
if %A%==Yes goto Clear
goto Not_Clear
:Clear
cls
:Not_Clear
Если переменная A совпадает со строкой Yes, перейти на метку Clear и очистить экран. В противном случае
пропустить очистку экрана.
ж) CALL осуществляет вызов одного командного файла из другого с последующим возвратом в вызывающий
файл. Формат команды: CALL [имя файла]
В имени вызываемого файла могут содержаться дополнительные параметры, которые обрабатываются
вызванным файлом. Пример:
Вызывающий командный файл: (example.bat)
@echo off
echo Файл запущен!
call version
echo Продолжаем!
Вызываемый командный файл: (version.bat)
@echo off
echo Ваша версия операционной системы:
ver
pause
example.bat вызывает version.bat, после выполнения которого вновь получает управление.
Задание №1:
1. Создайте командный файл Help.bat в фамильной папке (copy con имя файла)
2. Прокомментируйте каждую строку файл Help.bat (REM)
3. Предусмотрите в Help.bat следующие действия:
3.1. cоздать файл copy.help, содержащий описание команды copy (help copy > copy.txt)
3.2. cоздать файл move.help, содержащий описание команды move (help move > move.txt)
3.3. вывести содержимое *. txt на экран, ознакомиться со справкой (type copy.help)
3.4. cоздать каталог msdos-help (md spravka)
3.5. переместить в него файлы copy. txt move.txt (move *.txt spravka)
4. Отобразить полученные результаты с помощью tree/f
Задание №2:
1. В корневом каталоге диска D с помощью командной строки создать дерево каталогов cогласно рисунку:
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
Убедиться в полученном результате с помощью tree
В каталоге All с помощью командной строки создать файлы: 1.txt, 2.txt, 3.txt.
Сохраните в файлах следующий текст:
В 1.txt – «Бороться и искать»
В 2.txt – «найти»
В 3.txt – « и … не бороться (((!»
Убедиться в полученном результате с помощью tree/f
Создать пакетный командный файл lesson1.bat в каталоге All, описать следующую последовательность
команд и прокомментировать каждую из них с помощью команды REM
Удалить каталог В3, в каталоге А3
Удалить каталог В2 в каталоге А2
Cоздать подкаталоги В4 и В5 в каталоге А1
Скопировать файл 1.txt в каталог А2 и переименовать его в файл 12.txt.
Вывести на экран поочередно информацию, хранящуюся во всех текстовых файлах в каталоге All.
Скопировать все текстовые файлы из каталога All в каталог С2.
Объединить все текстовые файлы, хранящиеся в каталоге С2, в файл man.txt и вывести его содержимое
на экран.( copy 1.txt+2.txt+3.txt man.txt – обьединение)
Вывести на экран дерево каталогов каталога All с файлами.
Результат выполнения
заданий №1-9:
Результат выполнения задания:
Переменные в командных файлах используются для обмена информацией между отдельными
командами. Существуют два их вида:
1) переменная, определяемая в цикле. Ее имя состоит символа процента (в старых версиях
DOS/Windows - двух символов) и последующих букв, например, %A. Набор значений, которые
последовательно принимает такая переменная, задается при ее определении в команде for (см. ниже).
2) переменная окружения. Она определяется внутренней командой DOS вида
SET [имя]=[значение], где имя и значение - произвольные строки, и в течение всего сеанса работы
хранится в специальной области памяти, называемой "системным окружением". Системное
окружение управляется командным интерпретатором command.com. Чтобы использовать
переменную окружения в командном файле нужно ее имя заключить в символы процента %,
например, командами
set weekday=sunday
echo %weekday%
переменной с именем weekday присваивают значение sunday и выводят ее значение на экран
командой ECHO. Для просмотра окружения можно использовать команду SET без параметров.
Переменная окружения (переменная среды́, англ. environment variable) в Windows используются для
хранения текстовых строк пользователя и информации о настройках операционных систем
Задание № 3:
1. Используя команду SET из окна командной строки выяснить значения переменных среды
заданы в системе.
2. Выведите в файл lab1.txt значения переменных окружения (например:SET APPDATA >lab1.txt)
3. Заполните таблицу их значениями:
Название переменные среды
Значение
APPDATA
Возвращает используемое по умолчанию размещение
данных приложений.
CD
Идентична команде CD без аргументов.
COMPUTERNAME
Имя компьютера
DATE
Возвращает текущую дату. Использует тот же формат, что
и команда date /t. Создаётся командой Cmd.exe.
HOMEDRIVE
Возвращает имя диска локальной рабочей станции,
связанного с основным каталогом пользователя. Задаётся
на основании расположения основного каталога. Основной
каталог пользователя указывается в оснастке «Локальные
пользователи и группы».
HOMEPATH
Возвращает полный путь к основному каталогу
пользователя. Задаётся на основании расположения
основного каталога.
LOCALAPPDATA
Возвращает используемое по умолчанию локальное
размещение данных приложений
NUMBER_OF_PROCESSORS
Количество процессоров в системе (фактически,
количество ядер).
OS
Название операционной системы. Windows XP и Windows
2000 отображаются как Windows_NT.
PATHEXT
Возвращает список расширений файлов, которые
рассматриваются операционной системой как
исполняемые.
PROCESSOR_LEVEL
Номер модели процессора.
Результат
PROGRAMFILES
Путь к каталогу Program Files.
SYSTEMDRIVE
Диск, на котором расположен корневой каталог Windows.
SYSTEMROOT
Путь к корневому каталогу Windows.
TIME
Возвращает текущее время. Использует тот же формат, что
и команда time /t. Создаётся командой Cmd.exe.
Дополнительные сведения о команде time см. в разделе
Time.
USERDOMAIN
Имя домена, которому принадлежит текущий
пользователь.
USERNAME
Имя текущего пользователя.
WINDIR
Каталог, в котором установлена Windows.
4. Выведите экран значения переменных окружения TIME, WINDIR, USERDOMAIN с
помощью команды echo (чтобы получить значение переменной в командных файлах,
используют ее имя, заключенное в знаки процента %)
5. В отчете приведите примеры набранных вами команд.
Download