Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lab2_Пакетные файлы.doc
Скачиваний:
3
Добавлен:
15.09.2019
Размер:
181.25 Кб
Скачать

Лабораторная работа № 2

по дисциплине “Операционные системы, среды и оболочки”

Создание пакетных файлов

Цель работы:

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

Командный (или пакетный) файл в Windows — это обычный текстовый файл (в формате ASCII), с расширением bat или cmd, который содержит команды операционной системы, а также некоторые дополнительные инструкции и ключевые слова. Строками пакетного файла также могут быть вызовы исполняемых файлов (.com,.exe,.bat), метки и специальные команды пакетной обработки. Признаком метки является двоеточие в начале строки.

Пакетные файлы (ПФ) могут создаваться с помощью любого текстового редактора либо командой

COPY CON <имя файла>.BAT

Например, если записать в файл deltmp.bat следующие команды:

C:\

CD %TEMP%

DEL /F *.tmp

и запустить его на выполнение (набрать в командной строке deltmp.bat), то удалятся все файлы во временной директории Windows. Таким образом, исполнение командного файла приводит к тому же результату, что и последовательный ввод записанных в нем команд. Очевидно, что если приходится часто выполнять одни и те же действия, то использование командных файлов может сэкономить много времени.

Пакетный файл, состоящий из двух команд вызова

calc.exe

notepad.exe

вызовет стандартный Калькулятор, а при его закрытии вызовет Блокнот.

Общие правила оформления пакетных файлов:

  • для запуска исполняемого файла из пакетного следует просто указать его имя,

  • следует указывать полный путь доступа к файлам, если файл не содержится в текущем каталоге,

  • допускается использование подстановочных символов звездочка (*) или вопросительный знак (?) для замены наборов символов,

  • метка всегда содержится в отдельной строке и начинается с двоеточия,

  • при запуске каждой программы вырабатывается код ошибки выполнения – переменная errorlevel. В случае отсутствия ошибки errorlevel =0,

  • существование любого файла можно проверить с помощью операции exist:

значение операции exist имя файла равно True, если указанный файл существует.

  • для прекращения выполнения ПФ необходимо нажать клавиши CTRL+C;

  • в ПФ можно использовать символы переназначения ввода/вывода и конвейер команд;

При выполнении пакетного файла на экран выводятся все его команды. С помощью команды ECHO OFF можно отключить дублирование команд, идущих после нее. Чтобы отключить вывод одной команды на экран следует поставить перед ней знак @. Для восстановления вывода команд на экран используется команда ECHO ON или команда ECHO.

С помощью команды ECHO в пакетном файле можно выводить на экран строки с сообщениями.

Команда ECHO. (точка должна следовать непосредственно за словом "ECHO") выводит на экран пустую строку. Например,

@ECHO OFF

ECHO Привет!

ECHO.

ECHO Пока!

Часто бывает удобно для просмотра сообщений, выводимых из пакетного файла, предварительно полностью очистить экран командой CLS.

Используя механизм перенаправления ввода/вывода (символы > и >>), можно направить сообщения, выводимые командой ECHO, в определенный текстовый файл. Например:

@ECHO OFF

ECHO Привет! > hi.txt

ECHO Пока! >> hi.txt

С помощью такого метода можно, скажем, заполнять файлы-протоколы с отчетом о произведенных действиях. Например:

@ECHO OFF

REM Попытка копирования

XCOPY C:\PROGRAMS D:\PROGRAMS /s

REM Добавление сообщения в файл report.txt в случае

REM удачного завершения копирования

IF NOT ERRORLEVEL 1 ECHO Успешное копирование >> report.txt

Символы условной обработки

Символы условной обработки используются для ввода несколько команд одновременно и управления работой команд в зависимости от результатов их выполнения:

  • Амперсанд (&) разделяет несколько команд в одной командной строке.

  • Скобки группируют несколько команд.

  • Точка с запятой и запятая (; ,) разделяют параметры команд.

  • Символ (^) отменяет специальное использование управляющего символа, и управляющий символ можно использовать в тексте.

  • Двойной амперсанд (&&) запускает команду, стоящую за ним в командной строке, только если команда, стоящая перед этим символом была выполнена успешно.

  • Двойной символ канала (||) запускает команду, стоящую за этим символом, только если команда, идущая перед ним не была успешно выполнена.

Передача данных в командный файл

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

  • с помощью списка замещаемых параметров,

  • с помощью системных переменных.

Замещаемые параметры командной строки . При использовании первого способа в тексте пакетного файла используются формальные параметры, имеющие имена %0, %2, …%9. Реальные значения этим параметрам присваиваются с помощью фактических параметров, которые указываются при запуске пакетного файла через пробелы:

<имя пакетного файла> <параметр1> <параметр2> .. <параметр9>

При выполнении пакетного файла формальный параметр %1 получает значение (замещается) <параметр1>, формальный параметр %2 получает значение <параметр2> и т.д. В формальном параметре %0 хранится имя самого пакетного файла.

Если в командной строке при вызове пакетного файла задано меньше девяти параметров, то "лишние" переменные из %1 – %9 замещаются пустыми строками.

Например, пусть создан командный файл copier.bat следующего содержания:

@ECHO OFF

CLS

ECHO Файл %0 копирует каталог %1 в %2

XCOPY %1 %2 /S

Если запустить его из командной строки с двумя параметрами, например

copier.bat C:\Programs D:\Backup

то на экран выведется сообщение

Файл copier.bat копирует каталог C:\Programs в D:\Backup

и произойдет копирование каталога C:\Programs со всеми его подкаталогами в D:\Backup.

При необходимости использования более 10 параметров, необходимо воспользоваться командой SHIFT.

Символ “%” можно использовать в командах внутри пакетного файла, но при этом необходимо повторить его дважды. Например, имя файла f%.exe должно выглядеть как f%%.exe.

При использовании второго способа (глобальных переменных) перед запуском пакетного файла с помощью команды SET необходимо создать глобальные переменные (это будут пользовательские системные переменные) и присвоить им заданные значения. Имена этих переменных при использовании в командах пакетного файла заключаются в символы “%” (например, %FILE% ).

При использовании параметров можно анализировать значение передаваемого в пакетный файл параметра, выделяя определенные его части, например, можно выделить только расширение файла-параметра или только имя. Для параметра с номером n (%n) допустимы синтаксические конструкции, представлены в таблице

Дополнительные возможности для замещаемых параметров

Обозначение

Описание

%~Fn

Переменная %n расширяется до полного имени файла

%~Dn

Из переменной %n выделяется только имя диска

%~Pn

Из переменной %n выделяется только путь к файлу

%~Nn

Из переменной %n выделяется только имя файла

%~Xn

Из переменной %n выделяется расширение имени файла

%~Sn

Значение операторов N и X для переменной %n изменяется так, что они работают с кратким именем файла

%~$PATH:n

Проводится поиск по каталогам, заданным в переменной среды PATH, и переменная %n заменяется на полное имя первого найденного файла. Если переменная PATH не определена или в результате поиска не найден ни один файл, эта конструкция заменяется на пустую строку. Естественно, здесь переменную PATH можно заменить на любое другое допустимое значение

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]