Передача параметров командному файлу. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Передача параметров командному файлу.



Очень полезной особенностью работы с командными файлами является возможность передавать параметры командной строки и использовать их значения в операциях внутри самого командного файла.

BAT-файл параметр1 параметр2... параметрN
В самом командном файле первый параметр будет доступен как переменная %1, второй - %2 и т.п. Путь и имя самого командного файла доступно как переменная %0. Для примера создадим командный файл, задачей которого будет выдача на экран значений введенных при его запуске параметров командной строки. Для вывода текста на экран используется команда ECHO текст, однако если "текст" заменить на %0, - то будет выдано имя командного файла, %1 - первый аргумент, заданный в строке запуска, %2 - второй и т.д.
Создаем, например, командный файл params.bat следующего содержания:

echo off echo Это командный файл %0
echo Первый параметр=%1
echo Второй параметр=%2
echo Третий параметр = %3

и запускаем его на выполнение следующей командой:

params.bat FIRST second "two words"

после его выполнения вы поймете, как это работает, и что параметры содержащие пробелы, нужно заключать в двойные кавычки.

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

if "%1" EQU "" goto error
....
...
:error
Echo Должен быть задан хотя бы один входной параметр
exit

В командных файлах большого размера трудно обойтись без справочной информации в виде комментариев, для чего используется конструкция

REM пробел текст
Строки, начинающиеся с REM пробел, командным процессором игнорируются.

rem ECHO OFF выключает режим вывода содержания строк командного файла на экран
REM будет выводиться только результат их выполнения.
ECHO OFF
echo Первый параметр=%1
echo Второй параметр=%2
echo Третий параметр = %3

Для доступа из командного файла к параметрам командной строки применяются символы %0, %1, …, %9 или %*.

При необходимости можно использовать более девяти параметров командной строки. Это достигается с помощью команды SHIFT, которая изменяет значения замещаемых параметров с %0 по %9, копируя каждый параметр в предыдущий, то есть значение %1 копируется в %0, значение %2 – в %1 и т.д. Замещаемому параметру %9 присваивается значение параметра, следующего в командной строке за старым значением %9. Если же такой параметр не задан, то новое значение %9 — пустая строка.

Рассмотрим пример. Пусть командный файл my.bat вызван из командной строки следующим образом:

my.bat p1 p2 p3

Тогда %0=my.bat, %1=p1, %2=p2, %3=p3, параметры %4 – %9 являются пустыми строками. После выполнения команды SHIFT значения замещаемых параметров изменятся следующим образом: %0=p1, %1=p2, %2=p3, параметры %3 – %9 – пустые строки.

При включении расширенной обработки команд SHIFT поддерживает ключ /n, задающий начало сдвига параметров с номера n, где n может быть числом от 0 до 9.

Например, в следующей команде:

SHIFT /2

параметр %2 заменяется на %3, %3 на %4 и т.д., а параметры %0 и %1 остаются без изменений.

Команда, обратная SHIFT (обратный сдвиг), отсутствует. После выполнения SHIFT уже нельзя восстановить параметр (%0), который был первым перед сдвигом. Если в командной строке задано больше десяти параметров, то команду SHIFT можно использовать несколько раз.

В командных файлах имеются некоторые возможности синтаксического анализа заменяемых параметров. Для параметра с номером n (%n) допустимы синтаксические конструкции (операторы), представленные в табл. 3.1.

Таблица 3.1. Операторы для заменяемых параметров

Операторы Описание
%~Fn Переменная %n расширяется до полного имени файла
%~Dn Из переменной %n выделяется только имя диска
%~Pn Из переменной %n выделяется только путь к файлу
%~Nn Из переменной %n выделяется только имя файла
%~Xn Из переменной %n выделяется расширение имени файла
%~Sn Значение операторов N и X для переменной %n изменяется так, что они работают с кратким именем файла
%~$PATH:n Проводится поиск по каталогам, заданным в переменной среды PATH, и переменная %n заменяется на полное имя первого найденного файла. Если переменная PATH не определена или в результате поиска не найден ни один файл, эта конструкция заменяется на пустую строку. Естественно, здесь переменную PATH можно заменить на любое другое допустимое значение

Данные синтаксические конструкции можно объединять друг с другом, например:

%~DPn — из переменной %n выделяется имя диска и путь,

%~NXn — из переменной %n выделяется имя файла и расширение.

Рассмотрим следующий пример. Пусть мы находимся в каталоге C:\TEXT и запускаем пакетный файл Student.bat с параметром Рассказ.doc (%1=Рассказ.doc). Тогда применение операторов, описанных в табл. 3.1, к параметру %1 даст следующие результаты:

%~F1=C:\TEXT\Рассказ.doc

%~D1=C:

%~P1=\TEXT\

%~N1=Рассказ

%~X1=.doc

%~DP1=C:\TEXT\

%~NX1=Рассказ.doc

 



Поделиться:


Последнее изменение этой страницы: 2019-11-02; просмотров: 1211; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.129.247.196 (0.005 с.)