Пакетные файлы — это программа, состоящая из команд MS-DOS. Имеют специфические команды, предназначенные для организации условий цикла.
Синтаксис: <имя файла> [<параметр>]
Все параметры разделяются пробелом.
Вводные параметры и переменные
Для подстановки входных параметров в пакетном файле используется конструкция %0, %1,…,%9. %0 — имя пакетного файла. %1,…,%9 — входные параметры. Чтобы подставить параметры начиная с 10 следует нажать shift. Клавиша сдвигает номера параметров таким образом 0-й остается на месте, а все остальные параметры уменьшают номер на 1, при этом 1 теряется.
Все переменные, используемые в MS-DOS образуют окружение:
SET – список переменных окружений.
SET <переменная> = <значение>
SET <переменная> = — удаляет переменную из окружения.
Пример echo Ваша фамилия: %familia%.
Размер окружения строго фиксирован, он может составлять 160кб до нескольких килобайт. Каждая программа при запуске получает копию окружения и может ее использовать в своих целях.
Пример
echo ваша фамилия: %familiya%
Размер окружения строго фиксирован, он может составлять от 160байт до несколольких килобайт. Каждая программа при запуске получает копию окружения и может ее использовать в своих нуждах.
Общие команды
rem <коментарий> — текст коментария
@<команда> — вызвать команду не выдавая ее названия на экран.
echo off — отключить выдачу названий для всех команд.
Оператор перехода в пакетных файлах:<метка> — установить метку перехода в пакетном файле.
goto<метка> — перейти в метку
Пример:
@echo off
:m
echo «Привет!»
goto m.
if [not] errorlevel <число> <команда> — выполнить указанную команду, если код возврата последней выполненной команды >= чем указанное число.
if [not] «строка 1» == «строка 2» <команда> — выполнить команду если строки совпадают.
if [not] exist <имя файла> <команда> — выполняет команду если файл существует.
for %<параметр> in (<шаблон>) do <команда> — выполняет команду для всех значений параметра, являющихся именами файлов подходящих под заданный шаблон.
Пример: Распечатать имена txt-файлов
for %i in (*.txt) do echo %i
Пакетный файл можно вызвать из другого 2-мя способами:
Прямой вызов (без возврата):
a.bat
…..
…..
b.bat
тело b.bat
…..
…..
конец b.bat
продолжение a.bat не выполняется.
Процедурный вызов (с возвратом):
a.bat
…..
…..
call b.bat
тело b.bat
…..
…..
продолжение a.bat
…..
…..
конец a.bat