Формальные параметры командных файлов

Для создания универсальных пакетных файлов используется технология формальных и фактических параметров. Формальный параметр принимает фактическое значение из командной строки при вызове командного файла. Обозначается формальный параметр в командах %n, где n изменяется от 1 до 9. Фактические параметры при вызове пакетного файла должны разделяться пробелами:

C:>test.bat input output

При вызове пакетного файла test ему передается два фактических значения input и output.

Для контроля получения фактического значения формальным параметром используется условие условие с%n==с, где с – произвольный символ. Если формальный параметр не получил значения, то замыкающие символы – коды равны.

Примеры.

Пример №1. Проверка наличия файла на диске и просмотр его содержимого:

@echo off

cls

if exist t2.bat goto ok

echo Файл не найден !

pause

goto err

:ok

type t2.bat | more

pause

:err

Пример №2. Циклическое выполнение команды.

@echo off

cls

for %%a in (*.txt *.bat) do copy %%a a:d

Где %%a формальный параметр, который получает фактическое значение из списка заданного после ключевого слова in.

Пример №3. Контроль формального параметра.

@echo off

cls

rem Проверка наличия параметра и файла

if a%1==a goto nodata

if not exist %1 goto err

rem Просмотр файла

type %1 | more

goto stop

rem Обработка ошибок

:nodata

echo Имя файла не задано !

pause

goto stop

:err

echo Файл не найден !

pause

:stop