При вызове командного файла можно вводить данные после команды, на которую командный файл указывает с помощью переменных %1, %2 и т.д. Например, в командном файле HELLO.BAT следующая команда:

@echo hello %1 boy

выведет на экран такую строку:

hello businka boy

если параметр %1 имеет следующее значение:

hello businka

Далее перечислены методы модификации указываемых в командном файле параметров.

Версии параметров командного файла

Параметр

Описание

%1

Стандартный параметр

%~f1

Преобразование параметра %1 в полностью определенное имя пути к файлу. Если передать только имя файла из текущего каталога, то этот параметр будет дополнен до диска и каталога

%~d1

Получение буквы диска из параметра %1

%~p1

Получение пути из параметра %1

%~n1

Получение из параметра %1 имя файла без расширения

%~x1

Получение из параметра %1 расширения файла

%~s1

Изменение характеристик параметров x и n для работы с коротким именем. Таким образом, параметр %~sn1 можно использовать для получения короткого имени файла, а параметр %~sx1 — для получения короткого расширения

Далее демонстрируются методы совместного использования некоторых параметров.

Комбинирование параметров командного файла

Параметр

Описание

%~dp1

Преобразование параметра %1 в букву диска и путь к файлу

%~sp1

Используется для получения короткого пути

%~nx1

Преобразование параметра %1 в имя файла и расширение

Для просмотра всех описанных выше параметров добавьте их в файл TEST.BAT, что может выглядеть следующим образом:

@echo off
echo fully qualified name %~f1
echo drive %~d1
echo filename %~n1
echo file extension %~x1
echo short filename %~sn1
echo short file extension %~sx1
echo drive and directory %~dp1
echo filename and extension %~nx1

Затем откройте файл с длинным именем. Например, выходные данные командного файла, запущенного с файлом c:\temp\пипецкакоедлинноеимяфайла.long, выглядит таким образом:

fully qualified name c:\temp\ пипецкакоедлинноеимяфайла.long
drive C:
path \TEMP\
filename пипецкакоедлинноеимяфайла
file extension .logn
short filename LONGFI~1
short file extension .LON
drive and directory c:\TEMP
filename and extension пипецкакоедлинноеимяфайла.long

Этот метод подходит для второго и последующих параметров. Достаточно вместо значения 1 ввести номер параметра (например, %~f2 для получения полностью определенного имени).

Параметр %0 содержит информацию о самом командном файле (например, %~dp0 предоставляет информацию о диске и пути к командному файлу).