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



ЗНАЕТЕ ЛИ ВЫ?

Команды для организации циклов

Поиск

Для организации циклов используется конструкция:

FOR %%переменная IN ( множество ) DO команда [параметры]

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

@ECHO OFF

FOR %%i IN (Раз, Два, Три) DO ECHO %%i

напечатает следующее:

Раз

Два

Три

В качестве переменных цикла можно использовать лишь имена, состоящие из одной буквы. Как видите, нет командных скобок (типа begin end), поэтому весь цикл должен быть записан в одной строке, вложенные циклы не допускаются.

В параметре множество можно представить одну или несколько групп файлов. Например, для вывода всех файлов с расширениями *.doc и *.txt:

FOR %%f IN(C:\TEXT\*.doc C:\TEXT\*.prn) DO ECHO %%f >> list.txt

Из одного командного файла можно вызвать другой, просто указав его имя. Однако в этом случае управление назад не вернется, для этого существует команда CALL, с помощью которой можно в командных файлах организовать подобие подпрограмм. Например, командный файл proc.bat:

 

@ECHO OFF

ECHO Записываем файл %1.txt

ECHO Параметр вызова: %1 > %1.txt

можно вызвать в другом пакетном файле:

FOR %%i IN (Первый, Второй, Третий) DO CALL proc.bat %%i

 

в результате proc.bat вызывается 3 раза и создает 3 файла – Первый.txt, Второй.txt и Третий.txt с соответствующим текстом.

Командный файл может содержать метки, начинающиеся с двоеточия («:») и команды GOTO перехода к этим меткам. Имя метки задается набором символов, следующих за двоеточием до первого пробела или конца строки. Например:

@ECHO OFF

GOTO Label1

ECHO Эта строка никогда не выполнится

:Label1

REM Продолжение выполнения

DIR

 

C помощью команды IF в пакетных файлах можно выполнять обработку условий 3 типов:

1) IF [NOT] строка1= =строка2 команда

Условие считается истинным (обратите внимание на 2 знака равно) при точном совпадении обеих строк (регистр имеет значение). Строки могут быть литеральными (кавычки для них не требуются) или представлять значения переменных. Например:

IF %1%==Петя ECHO Привет, Петя!

Для предотвращения синтаксических ошибок в случае отсутствия переменных или параметров, рекомендуется при сравнении строк приписывать им вначале какой-нибудь символ, например:

IF -%MyVar%==-C:\ ECHO OK!

2) IF [NOT] EXIST файл команда

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

IF NOT EXIST C:\autoexec.bat ECHO У вас нет файла автозагрузки!

IF EXIST “C:\Мои документы\Работа.doc” ECHO Все в порядке!

3) IF [NOT] ERRORLEVEL число команда

Условие считается истинным, если последняя запущенная программа или команда завершилась с кодом возврата, равным либо превышающим указанное число. Например:

 

xcopy my.txt c:\ > nul

IF errorlevel 1 goto ErrOccurred

echo Копирование прошло без проблем.

goto EndBatch

:ErrOccurred

echo При выполнениеи команды возникла ошибка!

:EndBatch

 

К сожалению в командных файлах нет возможности организовать полноценный диалог с пользователем путем ввода строк с клавиатуры. Единственное средство – команда CHOICE, которая выводит подсказку и ждет выбора пользователем варианта из указанного набора клавиш.

Команда CHOICE

CHOICE [/C[:]варианты] [/N] [/S] [/T[:]c,nn] [текст]

Если в команде не задается текст, то пользователь видит на экране только подсказку.

После выполнения команды CHOICE переменная ERRORLEVEL приобретает значение, равное номеру варианта ответа, что позволяет использовать команду IF для организации ветвления. Если происходит ошибка, CHOICE возвращает 255, прерывание по <CTRL>+<C> или < CTRL >+<Break> - 0. В качестве примера рассмотрим простейшее меню:

@ECHO OFF

ECHO Выберите режим

ECHO 1 - Простой

ECHO 2 - Расширенный

ECHO.

CHOICE /c:12 Введите пункт меню

IF ERRORLEVEL 2 goto Choice2

IF ERRORLEVEL 1 goto Choice 1

ECHO Выход из меню

GOTO Done

:Choice1

ECHO Выбран пункт 1

GOTO Done

:Choice2

ECHO Выбран пункт 2

GOTO Done

:Done

Рассмотрим подробно ключи этой команды:

Ключ Описание Пример На экране
задает варианты ответа, по умолчанию YN CHOICE /C:ync Как дела? Yes, No, Cancel [Y, N, C]? Как дела
/N выводит только текст без вариантов ответа (клавиши для ответа работают) CHOICE /N Ну как Ну как
/S учет регистра символов (по умолчанию верхний и нижний воспринимаются одинаково)    
/T c – символ по умолчанию, который вводится после указанной в nn секунд паузы CHOICE /c:ync /t:N,10 [Y, N, C]? (после 10 сек выбирается N)


Поделиться:


Последнее изменение этой страницы: 2016-12-17; просмотров: 209; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

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