Студопедия

Главная страница Случайная страница

Разделы сайта

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






Вывод сообщений и дублирование команд






Язык интерпретатора Cmd.exe. Командные файлы

Вывод сообщений и дублирование команд.. 1

Использование параметров командной строки.. 2

Работа с переменными среды.. 3

Получение значения переменной. 3

Преобразования переменных как строк. 3

Операции с переменными как с числами. 4

Локальные изменения переменных. 4

Связывание времени выполнения для переменных. 5

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

Вызов внешних командных файлов. 5

Операторы перехода.. 6

Операторы условия. 6

Проверка значения переменной. 6

Проверка существования заданного файла. 8

Проверка наличия переменной среды.. 8

Проверка кода завершения предыдущей команды.. 8

Проверка версии реализации расширенной обработки команд. 9

Организация циклов. 9

Цикл FOR … IN … DO …... 9

Цикл FOR /D … IN … DO …... 10

Цикл FOR /R … IN … DO …... 10

Цикл FOR /L … IN … DO …... 10

Цикл FOR /F … IN … DO …... 11

Циклы и связывание времени выполнения для переменных. 13

Язык оболочки командной строки (shell language) в Windows реализован в виде командных (или пакетных) файлов. Командный файл в Windows – это обычный текстовый файл с расширением bat или cmd, в котором записаны допустимые команды операционной системы (как внешние, так и внутренние), а также некоторые дополнительные инструкции и ключевые слова, придающие командным файлам некоторое сходство с алгоритмическими языками программирования. Например, если записать в файл deltmp.bat следующие команды:

C: \
CD %TEMP%
DEL /F *.tmp

и запустить его на выполнение (аналогично исполняемым файлам с расширением com или exe), то мы удалим все файлы во временной директории Windows. Таким образом, исполнение командного файла приводит к тому же результату, что и последовательный ввод записанных в нем команд. При этом не проводится никакой предварительной компиляции или проверки синтаксиса кода; если встречается строка с ошибочной командой, то она игнорируется. Очевидно, что если вам приходится часто выполнять одни и те же действия, то использование командных файлов может сэкономить много времени.

Вывод сообщений и дублирование команд

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

REM Следующие две команды будут дублироваться на экране …
DIR C: \
ECHO OFF
REM А остальные уже не будут
DIR D: \

Для восстановления режима дублирования используется команда ECHO ON. Кроме этого, можно отключить дублирование любой отдельной строки в командном файле, написав в начале этой строки символ @, например:

ECHO ON
REM Команда DIR C: \ дублируется на экране
DIR C: \
REM А команда DIR D: \ – нет
@DIR D: \

Таким образом, если поставить в самое начало файла команду

@ECHO OFF

то это решит все проблемы с дублированием команд.

В пакетном файле можно выводить на экран строки с сообщениями. Делается это с помощью команды

ECHO сообщение

Например,

@ECHO OFF
ECHO Привет!

Команда ECHO. (точка должна следовать непосредственно за словом " ECHO") выводит на экран пустую строку. Например,

@ECHO OFF
ECHO Привет!
ECHO.
ECHO Пока!

Часто бывает удобно для просмотра сообщений, выводимых из пакетного файла, предварительно полностью очистить экран командой CLS.

Используя механизм перенаправления ввода/вывода (символы > (простое создание файла) и > > (дозапись файла)), можно направить сообщения, выводимые командой ECHO, в определенный текстовый файл. Например:

@ECHO OFF
ECHO Привет! > hi.txt
ECHO Пока! > > hi.txt

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

@ECHO OFF
REM Попытка копирования
XCOPY C: \PROGRAMS D: \PROGRAMS /s
REM Добавление сообщения в файл report.txt в случае
REM удачного завершения копирования
IF NOT ERRORLEVEL 1 ECHO Успешное копирование > > report.txt






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.