Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Команды для организации цикловСодержание книги
Поиск на нашем сайте
Для организации циклов используется конструкция: 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 Рассмотрим подробно ключи этой команды:
|
||||||||||||||||||||||||
Последнее изменение этой страницы: 2016-12-17; просмотров: 209; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.118.28.217 (0.008 с.) |