русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Примеры командных файлов


Дата добавления: 2013-12-23; просмотров: 2873; Нарушение авторских прав


 

1. Командный файл S.BAT, обеспечивающий постраничное отображение содержимого заданного текстового файла (с паузой после заполнения каждого экрана):

 

@ЕСНО OFF

IF /%1==/ GOTO ERR1 если не задан аргумент (имя файла) ,то ERR1

IF NOT EXIST %1 GOTO ERR2 –если отсутствует заданный файл

MORE <%1

GOTO END

:ERR1 He задан аргумент

ECHO Укажите имя файла

GOTO END

:ERR2 Файл отсутствует

ECHO Файл %1 отсутствует

:END

Команда More обеспечивает постраничное (полноэкранное) отображение содержимого текстового файла.

Синтаксис:

MORE [<file]

или

process|MORE.

Фильтр MORE считывает текстовый файл со стандартного устройства ввода-вывода и отображает его содержимое с паузой каждый раз после заполнения экрана дисплея. При этом в последней (нижней) строке экрана выдается сообщение –MORE-. Для вывода следующей страницы достаточно нажать на клавиатуре любую клавишу.

 

 

2. Командный -файл S.BAT, обеспечивающий добавление маршрутов поиска исполняемых файлов к уже имеющимся и отображение всех установленных маршрутов:

 

@EСНО OFF

:START

IF /%1==/ GOTO END

SET PATH=%PATH%;%1

SHIFT

GOTO START

:END

PATH

Команда PATH используется для установки и отображения маршрутов поиска исполняемых файлов.

PATH [dir[;dir]…]

PATH; -отменяет все маршруты поиска.

Исполняемый файл сначала ищется в выделенном по его спецификации каталоге, а затем в каждом заданном каталоге dir.

Если введено только имя команды, то выдаются текущие маршруты поиска.

Пример использования:

S C:\EDIT\TEXT\ME C:\DOS

 

Рассмотренный командный файл работает нормально, только если значение глобально переменной PATH помещается на одной строке экрана.

 

3. Командный файл DEL.BAT для удаления ВАК-файлов из заданного каталога, если он указан, или из рабочего каталога, если аргумент не задан



 

@EСНО OFF

SET #DIR=

IF NOT /%1==/ SET #DIR=%1\

IF EXIST %#DIR%*.ВАК GOTO DEL

ECHO Нет ВАК-файлов для удаления

GOTO END

:DEL

DIR %#DIR%*.ВАК

ECHO Для отказа удаления ,

ECHO нажмите Ctrl-Break, а иначе -

ECHO любую клавишу для продолжения

PAUSE >NUL

DEL %#DIR%*.ВАК

ECHO *** Файлы удалены ***

:END

 

В этом файле использована глобальная переменная с уникальным именем #DIR. Сначала ее значение сбрасывается командой SET. Это нужно для того, чтобы оно было пустым, а не осталось установленным после предыдущего вызова файла DEL.BAT. Затем, если аргумент задан, то к нему справа приписывается символ \ и результат сохраняется в качестве значения глобальной переменной #DIR. В последующих командах оно применяется в качестве префикса к составным именам ВАК-файлов.

Указание d: в качестве аргумента приведет к удалению ВАК-файлов не в текущем, а в корневом каталоге диска d. Поэтому если требуется задать текущий каталог, то нужно использовать конструкцию d:..

 

4. Командный файл LEX.BAT для вызова текстового редактора ЛЕКСИКОН с автоматической загрузкой в него последнего из ранее использованных для этой же цели текстовых файлов:

 

@ЕСНО OFF

IF /%1==/ GOTO N

SET #DOC=%1

:N

LEXICON %#DOC%

CLS

 

Если в ответ на приглашение DOS ввести

 

LEX C:\TXT\M.TXT

 

то спецификация указанного файла будет запомнена в глобальной переменной #DOC, а сам файл - загружен в редактор. Значение #DOC будет затем использоваться при запуске файла LEXICON.EXE командной строкой LEX без аргумента, обеспечивая загрузку в редактор последнего из заданных файлов.

 

 

5. Для автоматического ответа на запрос команды OS или программы в командном файле можно использовать следующую схему:

ECHO Y >YES

process <YES

DEL YES

Команда ECHO создает текстовый файл YES с ответом Y. Затем содержимое файла YES подается на стандартный ввод процесса. Этим имитируется ввод ответа Y с клавиатуры. После завершения процесса файл YES удаляется. Естественно, аналогичным образом можно задать любые требуемые ответы.

 

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

Еще один способ автоматического ввода ответа в процесс состоит в использовании строки вида

ECHO Y|process

 

6. Командные файлы для сохранения рабочего каталога в определенный момент и его восстановления после установки нового рабочего каталога. Для этого можно создать, например, в каталоге С:\ВАТ следующие командные файлы

 

CDFILE.BAT

 

CD

 

 

SAV.BAT

 

©ECHO OFF

CD >C:\BAT\CURDIR

COPY C:\BAT\CDFILE+C:\BAT\CUR C:\BAT\RETURN.BAT

 

Текстовый файл CDFILE содержит «начало» команды CD. Его нужно сформировать с одним пробелом после CD и без маркера EOF. Командный файл SAV.BAT обеспечивает запись спецификации рабочего каталога в текстовый файл CUR и формирование командного файла RETURN.BAT для восстановления этого каталога.

Для удобства работы одним из маршрутов поиска исполняемых файлов должен быть С:\ВАТ.

Пусть рабочим является каталог C\EDIT\TEXT\LEX. Если вызвать командный файл SAV (без аргументов), то будет сформирован командный файл RETURN, содержащий команду

 

CD C\EDIT\TEXT\LEX

 

После этого можно менять рабочие каталоги командой CD (но не командой d:). Для возврата в LEX достаточно будет ввести с клавиатуры RETURN.

Каждое последующее выполнение файла SAV отменяет действие предыдущего без возможности восстановления.

Описанная техника облегчает работу в случае наличия на жестким диске разветвленной файловой структуры.

 

7. Командный файл F.BAT для резервирования содержимого жесткого диска на диск в приводе А:.

 

@ЕСНО OFF

ATTRIB +А С:\*.* /S архивный файл

:LOOP

ECHO Установите отформатированный диск в привод А

ECHO и затем нажмите любую клавишу

PAUSE >NUL

XCOPY C:\*.* A: /S /M /E /V

IF ERRORLEVEL 4 GOTO LOOP

ECHO Резервирование завершено

 

Команда ATTRIB устанавливает атрибут А у всех файлов. XCOPY копирует на диске в приводе А файловую структуру с жесткого диска. У всех скопированных файлов атрибут А сбрасывается. Выполнение команды XCOPY завершается в одном из следующих случаев:

1) дискета заполнена, но не все файлы еще зарезервированы (код возврата 4);

2) все файлы зарезервированы, файлов для копирования не найдено или выполнение команды прервано по Ctrl-Break (коды возврата 0, 1 и 2 соответственно);

3) произошла критическая ошибка ввода-вывода (код возврата 5).

В случаях 1 и 3 команда IF передаст управление на метку LOOP для продолжения (возобновления) резервирования на следующей дискете. При этом уже скопированные файлы не резервируются, так как их атрибуты А сброшены.

Если произошел случай 2, то резервирование завершается с выдачей соответствующего сообщения.

Конечно, можно ввести дополнительный анализ кода возврата 5.

 

8. Резервирование всего содержимого жесткого диска требует много времени и большого количества дисков. Поэтому при повторном резервировании лучше в команде XCOPY использовать переключатель /D для копирования только тех файлов, которые созданы и обновлены после даты последнего резервирования. При этом для корректного выбора файлов требуется обеспечить работу DOS все время с правильной датой.

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

 

D.BAT

 

@ЕСНО OFF

CALL B

ECHO |MORE|DATE|FIND /V "Enter" >B.BAT

 

 

C.BAT

 

@ECHO OFF

ATTRIB +A C:\*.* /S

:LOOP

ECHO Установите диск в привод А

PAUSE >NUL

XCOPY C\*.* A: /S /M /E /V /D:%4

IF ERRORLEVEL 4 GOTO LOOP

ECHO Резервирование закончено

 

Для того чтобы использовать эти файлы, нужно один раз сформировать файл BAT с помощью команды

 

ECHO|MORE|DATE|FIND /V "Enter" >B.BAT

 

Этот файл будет содержать только строку, аналогичную следующей:

 

Current date is Sat 1-26-2009

(Текущая дата — суббота 26.01.2009 г.)

 

Команда MORE при отсутствии подлежащего отображению текста (от команды ECHO) генерирует маркер EOL и тем самым моделирует нажатие клавиши Enter в ответ на запрос текущей даты командой DATE. Команда же FIND отсекает из вывода команды DATЕ вторую строку (Enter new date (dd-mm-yy):).

Можно создать файл B.BAT и любыми другими средствами, но его содержимое обязательно должно иметь указанный вид.

Для резервирования новых файлов (созданных в день последнего резервирования или позже) теперь достаточно инициировать выполнение командного файла D. Он вызывает файл B.BAT, который интерпретируется как командный. При этом запускается командный файл C.BAT с четырьмя аргументами (date, is, день недели и дата).

Четвертый аргумент (дата) замещает параметр %4 в переключателе /D команды XCOPY.

После завершения резервирования управление возвращается в файл D.BAT и выполняется команда DATE, обновляющая файл B.BAT текущей датой, т.е. датой последнего резервирования. Поэтому после запуска DATECOPY через некоторый пepиoд времени резервирование пройдет в соответствии с ожиданиями (будут скопированы все файлы с учетом даты в B.BAT)



<== предыдущая лекция | следующая лекция ==>
Диалог с пользователем | Структура вычислительной системы


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.007 сек.