Для создания универсальных пакетных файлов используется технология формальных и фактических параметров. Формальный параметр принимает фактическое значение из командной строки при вызове командного файла. Обозначается формальный параметр в командах %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