Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2. Создание командных файлов.doc
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
844.8 Кб
Скачать

5. Проверка переданных параметров

При реализации командного файла может возникнуть потребность проверить, передал ли пользователь параметр или нет.

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

Вот, как может быть реализована данная задача:

@ ECHO OFF

IF NOT "%1"=="" GOTO HELLO

ECHO What is your name?

EXIT /B

:HELLO

ECHO Hello, %1!

С охраните данный файл с именем «Hello.cmd» и попробуйте его запустить без параметров и с параметром:

Разберем данный командный файл подробнее.

Первая строка «@ ECHO OFF» нужна для того, что бы не дублировались команды в экране консоли (символ «@» в начале строки предотвращает дублирование самой этой строки).

Вторая строка «IF NOT "%1"=="" GOTO HELLO» буквально означает следующее: если первый параметр не пуст, то перейти на метку «HELLO».

Третья строка «ECHO What is your name?» сообщает пользователю, что он забыл ввести имя (т.е. передать параметр в командный файл).

Четвертая строка «EXIT /B» содержит уже известную нам команду «EXIT», однако она содержит параметр «/B». Данный параметр указывает на то, что будет завершен не сам консольный режим работы, а только текущий командный файл.

Пятая строка «:HELLO» содержит в себе метку. Метки должны начинаться с символа «:» и содержать любую последовательность латинских символов, цифр и символа «_». Метки нужны для того, что бы из любой точки командного файла можно было бы передать управление в точку, содержащую данную метку. Для этого служит команда «GOTO», которой, в качестве параметра, передается имя метки для перехода.

Шестая строка «ECHO Hello, %1!» выведет на экран приветствие, подставив вместо «%1» имя пользователя (значение переданного в командный файл параметра).

И так, для проверки переданных параметров можно использовать команду «IF». Ключевое слово «NOT», указанное в этой команде означает отрицание условия. Следом за ним идёт само условие: «"%1"==""», что означает сравнение параметра «%1» с пустой строкой. Таким образом, если параметр «%1» не является пустой строкой (т.е. параметр был передан пользователем), выполнение командного файла переходит в точку, помеченную меткой «HELLO», где и происходит вывод приветствия на экран. Если же параметр не был передан (а, значит, он содержал в себе пустую строку), то управление переходит на следующую команду после «IF», где и выводится сообщение о том, что пользователь забыл ввести имя, а, затем, происходит завершение выполнения командного файла.

Что бы лучше освоить материал, ознакомьтесь со справками по командам «IF» и «GOTO». Для этого наберите в командной строке команды «IF /?» и «GOTO /?».

6. Проверка существования файла

Можно узнать, существует ли тот или иной фай л на диске. Для этого используется команда «IF» с условием «EXIST». В общем случае синтаксис команды выглядит следующим образом:

IF [NOT] EXIST имя_файла команда

NOT – Указывает, что Windows должна выполнить эту команду, только если условие является ложным.

EXIST имя_файла – Условие является истинным, если файл с указанным именем существует.

команда – Задает команду, выполняемую при истинности условия.

В качестве примера создадим командный файл, который будет получать имя файла в качестве параметра, проверять, существует ли указанный файл. Если файл существует, то он будет копироваться в корень диска F:, в противном случае должно выводиться соответствующее сообщение.

@ ECHO OFF

IF NOT EXIST %1 GOTO ERROR

COPY %1 F:\

EXIT /B

:ERROR

ECHO File %1 not found.

Пояснение кода:

1-я строка предотвращает дублирование исполняющихся команд в окне консоли.

2-я строка производит проверку на несуществование файла, имя которого передано в качестве параметра. Если файл не существует, то осуществляется переход на метку ERROR, в противном случае управление передается следующей команде.

3-я строка осуществляет копирование файла, имя которого передано в качестве параметра, в корень диска F:.

4-я строка завершает работу командного файла после копирования.

5-я строка содержит метку с именем «ERROR».

6-я строка выводит сообщение о том, что файл не найден.

Задание: добавьте в этот командный файл проверку на случай, если пользователь не передал параметр.