Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
BAT_files.doc
Скачиваний:
49
Добавлен:
02.05.2015
Размер:
257.02 Кб
Скачать

If errorlevel 1 goto ErrOccurred

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

goto EndBatch

:ErrOccurred

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

:EndBatch

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

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

  • choice /N /T:y,%сек% > nul - таймер (на n секунд задерживает выполнение последующих команд);

  • %команда% > nul - запрещение вывода на экран самой команды и результата её действия (полезно при команде "copy"). Пример: copy c:some.exe %windir%some.exe > nul;

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

Ключ

Описание

Пример

На экране

задает варианты ответа, по умолчанию 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.

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

 Как изменить цвет в пределах командного файла?

В Windows NT Workstation 4.0 для изменения цвета Command Prompt можно использовать команду Color. Пример:

C:\> color 06

устанавливает цвета в желтый на черном. То есть, первая цифра - цвет фона (черный), вторая - цвет переднего плана (желтый).

Таблица допустимых цветов:

0 - Черный

1 - Синий

2 - Зеленый

3 - Аква

4 - Красный

5 - Пурпурный

6 - Желтый

7 - Белый

8 - Серый

9 - Светло-синий

A - Светло-зеленый

B - Светлый аква

C - Светло-красный

D - Светло-пурпурный

E - Светло-желтый

F - Ярко белый

Так, цвет 2F - это зеленый фон и ярко белый (bright white). Даже и не знаю, как это правильно на русский перевести...) передний план.

Как запустить командный файл с параметрами?

Для этого запустите командный файл с параметром %1, %2 и т.д. Пример для hello.bat:

@echo hello %1 Harchenko

На выходе получим:

hello Andrey Harchenko

если вызывается файл "hello.bat Andrey" (не требуется вводить расширение .bat)

Также вы можете использовать следующие параметры:

Параметр

Описание

%1

Стандартный параметр

%~f1

Расширяет %1 до полного пути к файлу. Если вы только ввели имя файла, этот параметр расширит его включением драйва/директории

%~d1

Извлекает имя драйва из %1.

%~p1

Извлекает путь из %1

%~n1

Извлекает имя файла из %1 но без расширения

%~x1

Извлекает расширение файла из %1

%~s1

Изменяет длинное имя и расширение файла до стандартного 8.3 Используется как %~sn1 для короткого имени файла и как %~sx1 для короткого расширения

Можно объеденить несколько параметров:

Параметр

Описание

%~dp1

Расширяет %1 только до имени драйва и пути

%~nx1

Расширяет %1 только до имени и расширения файла

Чтобы увидеть как все это работает, вставьте в командный файл testing.bat следующее:

@echo off echo fully qualified name %~f1 echo drive %~d1 echo path %~p1 echo file name %~n1 echo file extension %~x1 echo short file name %~sn1 echo short file extension %~sx1 echo drive and directory %~dp1 echo file name and extension %~nx1

Запустите этот файл с файлом, имеющим длинное име и расширение. Например, для c:\temp\longfilename.long получите следующее:

fully qualified name c:\TEMP\longfilename.long drive c: path \TEMP\ file name longfilename file extension .long short file name LONGFI~1 short file extension .LON drive and directory c:\TEMP\ file name and extension longfilename.long

Данный пример рассматривает параметр %~f1. Для всех последующих (%~f2, %~f3 и т.д.) все делается аналогично.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]