Краткий справочник по использованию параметров для bat (и cmd) файлов.
Параметр |
Описание |
%1 |
Стандартный параметр |
%~f1 |
Расширяет %1 до полного пути к файлу. Если вы только ввели имя файла, этот параметр расширит его включением драйва/директории |
%~d1 |
Извлекает имя драйва из %1. |
%~p1 |
Извлекает путь из %1 |
%~n1 |
Извлекает имя файла из %1, но без расширения |
%~x1 |
Извлекает расширение файла из %1 |
%~s1 |
Изменяет длинное имя и расширение файла до стандартного 8.3; используется как %~sn1 для короткого имени файла и как %~sx1 для короткого расширения |
Можно объединить несколько параметров:
Параметр |
Описание |
%~dp1 |
Расширяет %1 только до имени драйва и пути |
%~nx1 |
Расширяет %1 только до имени и расширения файла |
Запущенный bat-файл не загружается в память сразу, он считывает и выполняет команды по одной. Поэтому, если во время выполнения одной из команд изменить содержимое bat-файла, то при выполнении следующей команды будут срабатывать только что внесённые изменения.
[Проверка наличия параметра]
Проверить наличие определенного параметра в bat-файле можно оператором if [%1]==[] goto, пример:
@echo off
if [%1]==[] goto usage
@echo Это не выполнится, если параметр %1 указан
@echo Done.
goto :eof
:usage
@echo Usage: %0 ^<EnvironmentName^>
exit /B 1
Этот же пример показывает, как можно экранировать действие специальных символов (в данном примере это символы < и >) с помощью символа ^.
[Проверка значения параметра]
Пример командного файла, который ожидает в первом параметре значение -a или -b:
@echo off
if "%1"=="-a" goto printA
if "%1"=="-b" goto printB
goto wrong_arg
:printA
echo A
goto eof
:printB
echo B
goto eof
:wrong_arg
echo "Неправильные аргументы"
:eof
[Ссылки]
1. Как запустить командный файл с параметрами site:winfaq.com.ru. |