Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
заочникиОС / Лабораторные работы / Лабораторная работа № 2.doc
Скачиваний:
62
Добавлен:
17.04.2015
Размер:
113.15 Кб
Скачать

Программирование пакетных файлов

Как и во всяком языке программирования, командный интерпретатор содержит переменные (параметры), которым могут быть назначены конкретные значения во время выполнения пакетного файла (программы). Переменные могут обозначаться любым набором символов, который не должен начинаться с цифры или служебного символа и не должен содержать пробелы. Например, набор символов temp или темр8 является допустимым для обозначения переменной, а 6temp или temp 8 – недопустимым набором. Переменные командного интерпретатора обычно называют именованными параметрами. Присвоить значение именованным параметрам можно с помощью команды set. Например,

set temp = c:\windows\temp

Прим: команда set без параметров выводит на экран список всех переменных, назначенных на данный момент операционной системой и пакетными файлами с указанием их значений.

Прочитать же содержимое такой переменной можно, например, командой echo. Но при этом название переменной необходимо заключить в знаки %. Например,

echo %temp%

Кроме именованных параметров командный интерпретатор содержит и так называемые позиционные параметры (переменные), которые используются пакетными файлами для ввода собственных параметров (то, что указывается вслед за названием файла). В командной строке имя файла и параметры разделяются один от другого пробелами. Внутри пакетного файла позиционным параметрам соответствуют переменные, обозначаемые символами от %0 до %9, то есть всего таких переменных ровно десять. При этом переменная %0 принимает значение равное названию самого файла. Поэтому фактически первому позиционному параметру будет соответствовать переменная %1, второму -%2 и т.д. до %9.

Чтобы проверить данное утверждение, составим пакетный файл start.bat и включим в него следующие строки:

echo off

echo Название файла %0

echo Первый позиционный параметр %1

echo Второй позиционный параметр %2

echo Третий позиционный параметр %3

а затем выполним его с командной строки

start.bat p1 p2 p3

После выполнения файла мы увидим значения всех позиционных параметров.

Практическая часть

Перед началом выполнения работы создайте собственную папку, например mydoc, и в ней выполняйте задания по созданию командных файлов.

Задание 1: создайте текстовый файл (в Norton Commander -<shift>+<F4>) с именем

start.bat и внесите в него вышеуказанные команды.

С командной строки исполните файл с параметрами par1 par2 par3. Результаты поместите в отчет. Отчет создавайте в редакторе Word и скопируйте в него результаты выполнения файла вместе с командной строкой.

Задание 2: создайте пакетный файл с именем

Start1.bat

Следующего содержания:

echo off

set val=Именованный параметр

echo val

echo %val%

Выполните с командной строки

start1.bat

Результаты поместите в отчет.

Оператор for. Простой командный файл. Вывод на экран текстовых строк

Задание 3: создайте текстовый файл (в Norton Commander -<shift>+<F4>) с именем

zikl1.bat

и внесите в него следующий текст:

for %%i in (Число_стихий Воздух Вода Земля Огонь) do echo %%i

Выполните с командной строки

zikl1.bat

Если Вы не допустили ошибок в набивке, на экране должен появиться результат без системных сообщений. Если ошибки допущены, устраните их и внесите первую строку файла zikl1.bat команду:

Echo off

Содержимое файла и результат выполнения команды zikl1.bat поместите в файл отчета.

Оператор if.

Задание4: создайте командный файл

zikl2.bat

и внесите в него следующие команды:

:one

shift

if "%0" == "" goto two

type %0

pause

goto one

:two

echo -------------Конец печати-----------------

pause

Созданный командный файл предназначен для использования формальных параметров без ограничения их числа.

С командной строки выполните

zikl2.bat c:\config.sys c:\autoexec.bat

Если файл исполнен без ошибок, вставьте в первую строку команду

Echo off.

Результат выполнения команды поместите в конец файла отчета.

Оператор for. Вывод на экран содержимого текстовых файлов, указанных в качестве позиционных параметров командного файла.

Задание 5: создайте командный файл

Zikl3.bat

и внесите в него следующие команды:

echo off

for %%i in (1 2 3) do type zikl%%i.bat

В данном примере командный файл использует параметр цикла i как переменную часть файла zikl(1 2 3).bat.

С командной строки выполните

zikl3.bat

и результаты внесите в отчет.

Операторы echo, choice, if, goto. Цель: пример организации командного файла, выводящего на экран меню с указанием команд, которые следует выполнить при выборе соответствующего пункта. В данном примере разбирается командный файл, предназначенный для автоматизации режимов архивации с расположением архива на дискетах. Имя каталога, предназначенного для архивации, указывается в качестве позиционного параметра. Для выполнения задания Вам необходимо на диске C: создать папку c:\arc и поместить в нее файл arj.exe. Если работа выполняется в ОС Windows XP Prof, то дополнительно в папку Windows следует поместить файл choice.com. Где взять эти файлы, Вам укажет преподаватель.

Задание 6: Создайте файл arxiv.bat и внесите в него следующие строки:

echo off

Rem Очистка экрана

cls

echo .

echo .

:begin

echo .

echo A - Создать архив на дискете %1

echo X - Восстановление архива с дискет %1

echo L - Распечатка содержимого архива %1

echo H - Справка по rar

echo Q - Выход из программы архивации

choice /c:axlhq Выбери:

if errorlevel 5 goto exit

if errorlevel 4 goto help

if errorlevel 3 goto list

if errorlevel 2 goto extract

if errorlevel 1 goto creat

:creat

if not exist C:\Program Files\WinRAR\rar.exe goto noarj

C:\Program Files\WinRAR\rar.exe a -va a:arx %1

goto begin

:extract

if not exist C:\Program Files\WinRAR\rar.exe goto noarj

C:\Program Files\WinRAR\rar.exe x -va a:arx.arj

goto begin

:list

If not exist C:\Program Files\WinRAR\rar.exe goto noarj

C:\Program Files\WinRAR\rar.exe L -va a:arx.arj | more

goto begin

:help

if not exist C:\Program Files\WinRAR\rar.exe goto noarj

C:\Program Files\WinRAR\rar.exe /?

goto begin

:noarj

echo Архиватор C:\Program Files\WinRAR\rar.exe отсутствует в системе!

:exit

echo Конец файла!!!

Проверьте правильность работы команды arxiv.bat без параметров:

arxiv.bat

Выберите поочередно пункты меню:

  1. Справка по RAR

  2. Создание архива на дискете

  3. Распечатка содержимого архива

Поместите в отчет содержимое файла архива.