При вызове командного файла можно вводить данные после команды, на которую командный файл указывает с помощью переменных %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 предоставляет информацию о диске и пути к командному файлу).