Параметры пакетного файла. Программирование пакетных файлов
Как и во всяком языке программирования, командный интерпретатор содержит переменные (параметры), которым могут быть назначены конкретные значения во время выполнения пакетного файла (программы). Переменные могут обозначаться любым набором символов, который не должен начинаться с цифры или служебного символа и не должен содержать пробелы. Например, набор символов 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 - Справка по arj
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:\arc\arj.exe goto noarj
c:\arc\arj.exe a -va a:arx %1
goto begin
:extract
if not exist c:\arc\arj.exe goto noarj
c:\arc\arj.exe x -va a:arx.arj
goto begin
:list
If not exist c:\arc\arj.exe goto noarj
c:\arc\arj.exe L -va a:arx.arj | more
goto begin
:help
if not exist c:\arc\arj.exe goto noarj
c:\arc\arj.exe /?
goto begin
:noarj
echo Архиватор c:\arc\arj.exe отсутствует в системе!
:exit
echo Конец файла!!!
Проверьте правильность работы команды arxiv.bat без параметров:
arxiv.bat
Выберите поочередно пункты меню
1. Справка по arj
2. Создание архива на дискете
3.Распечатка содержимого архива
Поместите в отчет содержимое файла архива.
Индивидуальные задания.
Выберите из ранее выполненных заданий подходящее и модифицируйте его так, чтобы на экран выводились данные согласно номеру варианта. Данные ввести в качестве позиционных параметров командного файла.
Знаки зодиака.
Список экзаменов зимней сессии.
Составьте командный файл, который выводит на экран меню, состоящее из трех пунктов, с поясняющим текстом согласно номеру варианта и выполняет задания, указанные в поясняющем тексте.
Работа с каталогами
а) создание каталога,
б) вывод содержимого каталога,
в) удаление каталога.
Работа с файлами
а) создание файла,
б) переименование файла,
в) удаление файла.
Предоставьте преподавателю отчет по лабораторной работе для проверки.