ECHO Для отмены нажмите Ctrl-C 


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



ЗНАЕТЕ ЛИ ВЫ?

ECHO Для отмены нажмите Ctrl-C



PAUSE

DEL “C:\Мои документы\*.*”

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

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 [/C[:]варианты] [/N] [/S] [/T[:]c,nn] [текст]

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

Ключ Описание Пример На экране
задает варианты ответа, по умолчанию 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)

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

@ECHO OFF

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

ECHO 1 - Простой

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

ECHO.



Поделиться:


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

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