АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Перенаправление потоков ввода/вывода

Читайте также:
  1. Виды потоков в логистики.
  2. Временная оценка денежных потоков.
  3. Геологическая деятельность постоянных водных потоков.
  4. Дисконтирование денежных потоков. Выбор ставки процента (дисконтной ставки)
  5. Информационная база для анализа денежных потоков
  6. Классификация денежных потоков
  7. Классификация денежных потоков
  8. Классификация и особенности информационных потоков
  9. Классы (fstream, ofstream, ifstream, ostream, istream, ios) и представители классов потокового ввода-вывода.
  10. Ключевые понятия, связанные с движением денежных потоков
  11. Концепции денежных потоков
  12. Концепция денежных потоков

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

> - Переназначает вывод.

< - Переназначает ввод.

>> - Добавляет переназначенный вывод к существующим данным.

| - Конвейер – вывод первой команды непосредственно на ввод другой.

Приведем пример. Команда
DIR>abc.txt
выведет результаты не на экран, а в файл abc.txt, предварительно создав или перезаписав его. В дальнейшем можно использовать его для более удобной обработки полученной информации (например, если список слишком большой).
DIR>>abc.txt
данная команда также запишет результат не на экран, а в файл abc.txt, но она не удалит его содержимое, а добавляет результат в конец файла. Если файл не существует, он будет создан.
DIR | MORE
Это пример использования результатов выполнения команды (piping) DIR фильтром MORE, который делает паузу после каждого экрана листинга. Еще один полезный пример:
ECHO Y | DEL *.*
Сама команда DEL *.* должна удалить все файлы в каталоге.

 

Основные команды и операторы пакетных файлов.

REM [текст]
Команда REM служит для ввода комментариев. Любой текст, расположенный в строке после нее, будет считаться комментарием и не выполняется. Это бывает полезно при отладке программы или временном "выключении" некоторых строк файла.
REM Эта строка не будет выполняться командным процессором.

ECHO [ON | OFF | Текст]
Команда ECHO используется для управления эхо-режимом, то есть режимом отображения на экране служебной информации. ECHO OFF запрещает этот вывод, а ECHO ON - разрешает. ECHO <Текст> используется для вывода текста на устройство (на экран, COM или LPT-порты). То есть, команда
ECHO Привет!
выведет на экран "Привет!". А команда
@<команда>
Оператор @. позволяет не выводить следующую за ним команду на экран. Это аналог оператора ECHO OFF только для одной строки. Часто используется следующим образом в начале многих пакетных файлов:
@ECHO OFF
Это позволяет не выводить и саму запрещающую строку ECHO OFF при выполнении пакетных файлов.
GOTO <метка>
Оператор GOTO осуществляет безусловный переход на метку внутри этого же файла. Метка обозначается следующим образом:
:label
то есть, со знаком двоеточия в начале. Для перехода к такой метке будет служить команда
GOTO label
в любом месте BAT-файла.
%<цифра 0-9>
Как и в любом языке, в языке пакетных файлов возможно использование переменных. Всего может быть 10 одновременно существующих независимых переменных. Для написания сложных программ это довольно мало, хотя для обычной работы часто хватает и 3-4. Значение переменной равно значению соответствующего параметра из командной строки. Переменная %0 будет содержать имя.bat-файла и, если вы указали, путь к нему. То есть, если вы запустили файл abc.bat со следующими параметрами:
abc.bat a bc def
то переменная %0 будет содержать значение abc.bat, %1 будет содержать значение a, %2 будет содержать bc, а %3 - def. Это свойство широко используется для создания универсальных пакетных файлов при работе с повторяющимися операциями.
SHIFT
Команда SHIFT позволяет использовать число параметров командной строки далее 10. Однако, при этом теряются соответственно более ранние параметры. Иными словами, команда SHIFT сдвигает все значения переменных на один влево. То есть, переменная %0 будет содержать значение, содержавшееся до этого в переменной %1, а переменная %1 - значение переменной %2 до сдвига. Однако, данная операция является необратимой, то есть, невозможно сдвинуть переменные обратно.
CALL <имя bat-файла>
Команда CALL позволяет вызвать один пакетный файл из другого, не прекращая выполнения предыдущего. Пример:
CALL ABC.BAT
То есть, при выполнении команды CALL выполнение текущего пакетного файла прекратится и управление будет передано пакетному файлу с именем ABC.BAT. При использовании команды CALL ABC.BAT, после завершения работы файла ABC.BAT управление будет возвращено на следующую после команды вызова строку.
IF <условие> <следствие>
Оператор IF проверяет истинность какого-либо <условия> и в зависимости от этого выполняет или не выполняет команду <следствие>. Возможны следующие условные конструкции:
IF EXIST ABC.BAT GOTO work
если существует файл ABC.BAT, то перейти на метку work.
IF NOT EXIST ABC.BAT GOTO exit
если не существует файл ABC.BAT, то перейти на метку exit.
IF %1==ASDF GOTO asdflabel
если переменная %1 равна ASDF, то - переход на метку asdflabel.
IF ERRORLEVEL 1 GOTO err1
если ошибка (возвращаемое значение) выполнения предыдущей команды равно 1, то перейти на метку err1.
PAUSE
Команда PAUSE приостанавливает выполнение пакетного файла и выдает на экран приглашение нажать на любую клавишу для продолжения работы. Бывает полезна для того, чтобы дать возможность пользователю прочитать многостраничный текст без использования фильтра MORE.
FOR %<параметр> IN () DO <команда>
С помощью оператора FOR возможно выполнение одной и той же команды несколько раз для различных параметров. Рассмотрим следующий пример для большей ясности:
FOR %%P IN (file1 file2 file3) DO DEL %%P
Знак процента используется в операторе FOR удвоенным для обозначения пустой переменной в пакетном файле. Если оператор FOR используется из командной строки, знак процента должен быть одинарным.
В результате выполнения будут удалены файлы file1, file2 и file3. Можно записать и с использованием маски файлов:
FOR %%P IN (file?) DO DEL %%P
В результате будут удалены все файлы, подпадающие под данную маску. Если в последовательности VAR нет символов маски файла, эта последовательность может обозначать любые текстовые строки. Иначе - это должны быть имена файлов на диске. В строке цикла FOR нельзя использовать переадресацию и перенаправление потоков.

SET <Имяпеременной>=<Значениепеременной>
Оператор SET представляет собой расширение возможностей работы с параметрами в операционной системе. Он задает переменную, значение которой подставляется вместо ее имени при любом использовании этого имени между знаками процента. Так, если задано (переменная, которую требуют многие игры, использующие звуковую карту компьютера):
SET BLASTER=A220 I5 D1 P330
то при использовании в пакетном файле следующей конструкции:
ECHO %BLASTER%
на экран будет выведено "A220 I5 D1 P330". Переменные, определенные с помощью оператора SET называются переменными окружения среды (environment) и являются видимыми после выполнения до перезапуска

 

PROMPT [текст][спецификатор]
Команда PROMPT хоть и не является командой пакетного файла, так как является командой операционной системы в целом, однако, заслуживает упоминания, ибо почти всегда присутствует в файле autoexec.bat.
Данная команда управляет видом приглашения командной строки. Обычно оно выглядит примерно следующим образом:
C:\DOS>
Этому соответствует спецификатор команды PROMPT, равный $P$G То есть, Диск:\Путь>. Это задается использованием знака доллара "$" и символа, означающего определенную последовательность.
Предусмотрены следующие варианты:

$ - символ "знак доллара".

_ - перевод строки.

B - символ "|".

D - текущая дата.

E - символ #27 (Esc).

G - символ "больше".

H - "backspace"-символ.

L - символ "меньше".

N - текущий диск.

P - текущий каталог на текущем диске.

Q - символ "равно".

T - текущее время.

V - номер версии DOS.

Используя сочетания этих символов можно изменить вид приглашения DOS по своему вкусу. Не забывайте ставить перед каждым из этих символьв знак доллара.
Если использовать какой-либо текст в строке команды PROMPT, он также будет выведен в соответствующие позиции.

 


1 | 2 | 3 |

Поиск по сайту:



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