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

Командный файл с параметрами

Предположим, что нам понадобилось пересылать текстовые файлы в произвольный каталог любом устройстве. Спецификация каталога должна быть параметром командного файла. Например, для пересылки текстовых файлов в каталог F:\NEWS команда должна иметь вид:

При интерпретации данного командного файла в соответствии с приведенным выше вызовом вместо параметра %1 будет подставлено значение F:\NEWS.

Командный файл с проверкой условий

Добавленный нами в предыдущем примере параметр является обязательным. Мы не можем теперь ввести команду MOVETXT без параметров, чтобы скопировать тексты в F:\COMMON. Хотелось бы вернуть это полезное свойство. Очевидно, что без проверки, задан ли параметр, нам не обойтись. Для проверки условий в командных файлах используется команда:

IF [NOT] условие команда

«Условие» может быть задано в одной из следующих форм:

3. Логическая операция NOT используется, если необходимо проверять отрицание одного из перечисленных условий.

5. Текст командного файла MOVETXT.BAT, допускающего отсутствие параметра будет иметь вид:

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

Метка должна быть определена в отдельной строке командного файла, начинающейся с двоеточия, например :MOVE.

Команда управления выдачей сообщений может иметь одну из следующих форм:

Приведем командный файл, проверяющий наличие пересылаемых файлов.

IF EXIST *.TXT GOTO MOVE

echo Файлы не найдены!

Диалоговые командные файлы

Разработчики MS DOS даже не думали о диалоговых командных файлах, что следует из дословного перевода их термина «пакетный файл». Но пользователи устранили этот пробел. В состав нортоновских утилит входит простенькая программа ASK, которую может написать любой начинающий программист. Вызов этой программы имеет вид:

ASK «сообщение», список символов

Утилита выводит сообщение, и после нажатия клавиши с одним из указанных в списке символов завершает работу. При этом она формирует код завершения, равный порядковому номеру символа в списке. Символы в списке нумеруются с 1.

Используем эту утилиту для написания командного файла, запрашивающего пользователя, надо ли удалять пересылаемые файлы.

IF EXIST *.TXT GOTO MOVE

echo Файлы не найдены!

IF ERRORLEVEL 2 GOTO EXIT

Надо сказать, что в последних версиях MS DOS появилась утилита, аналогичная ASK. Это утилита CHOICE.

Командные файлы, использующие переменные окружения

Часть системной информации ДОС хранится в виде переменных окружения. Переменная окружения имеет имя и символьное значение. Например, информация о путях доступа для поиска исполняемых файлов хранится как переменная с именем PATH. Значение этой переменной устанавливается равным операнду соответствующей команды PATH.

Для чего используются параметры в командных файлах. Смотреть фото Для чего используются параметры в командных файлах. Смотреть картинку Для чего используются параметры в командных файлах. Картинка про Для чего используются параметры в командных файлах. Фото Для чего используются параметры в командных файлах

Кроме стандартных системных переменных пользователь может определять свои переменные. Для установки значений и удаления любых переменных используется команда SET, формат которой здесь не рассматривается.

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

Имя переменной окружения PATH ограничено знаками процента. При выполнении записанной выше команды PATH вместо %PATH% подставляется значение переменной PATH и к этому значению присоединяется точка с запятой и значение первого параметра командного файла ADDPATH.

Командный файл, вызывающий другие командные файлы

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

Формат вызова с возвратом:CALL имя вызываемого командного файла

Передача управления в другой командный файл: имя вызываемого командного файла

Например, можно вызвать дважды командный файл MOVETXT.BAT из другого командного файла DBLMOVE.BAT для пересылки текстов из двух разных каталогов:

Отметим, что если в первом вызове MOVETXT не указать имя команды CALL, то второго вызова не произойдет, т.к. управление будет передано без возврата в командный файл MOVTXT.

Программы-утилиты.

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

Термин «utility» можно перевести как «обслуживающая программа», но можно и не переводить. Утилитами называют программы, выполняющие функции обслуживания аппаратных и информационных ресурсов системной среды, а также любые другие полезные для работы в системной среде функции. Исчерпывающий список функций утилит привести невозможно. Отметим лишь некоторые:

1. Тестирование и диагностика оборудования ЭВМ (CheckIt).

2. Оценка производительности ЭВМ.

3. Получение детальной информации о конфигурации ЭВМ и операционной системы.

4. Установка, изменение или оптимизация конфигурации ДОС (MemMaker).

5. Подготовка устройств внешней памяти к работе (Format).

6. Восстановление носителей данных (Norton Disk Doctor, MS Scan Disk).

7. Упаковка, резервное копирование и восстановление информации, хранимой в файловой системе (Backup,Restore,архиваторы).

8. Оптимизация физической организации файловой системы (Speed Disk, MS Defragmentator).

9. Поиск информации (Find, FileFind).

10. Борьба с компьютерными вирусами.

11. Защита от несанкционированного доступа (Password,Wipe Information).

В ДОС к утилитам можно отнести все программы, которые реализуют так называемые внешние команды. В ДОС команды классифицируются на внутренние и внешние. Внутренние команды выполняются интерпретатором команд ДОС COMMAND.COM, который всегда запускается после загрузки операционной системы. Внутренние команды поэтому всегда доступны пользователю. Внешние команды выполняются автономными программами и доступны пользователь при следующих условии, что в команде PATH задан путь доступа в каталог, где хранится соответствующая программа. Кроме утилит MS DOS существуют пакеты утилит других разработчиков. Наиболее известным является пакет Norton Utility.

Программы-оболочки

Назначение и функции программ-оболочек. Оболочка Norton Commander как пример системной среды, ориентированной на конечного пользователя. Отображение текущего состояния файловой системы. Операции, выполняемые от объекта-файла. Операции запуска файла на выполнение. Операции просмотра файла. Полиморфизм операций запуска и просмотра. Операции поиска.

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

В чем состоят дополнительные удобства, предоставляемые программами-оболочками?

1. При работе с командной строкой ДОС пользователь вынужден, как шахматист, держать в голове текущее состояние системной среды, совершая практически вслепую «ходы» с помощью команд ДОС, которые к тому же сообщают довольно скудную информацию о результатах своей работы. Программы-оболочки обеспечивает наглядное представление состояния системной среды с разной степенью детализации. Можно получить информацию об устройстве; о каталогах на устройстве; о файлах, содержащихся в каталогах; посмотреть сами файлы. Принципиально изменяется способ представления информации, которая в программах-оболочках выводится в панелях или окнах стандартной формы вместо убегающего с экрана потока. Таким образом, пользователь освобождается от необходимости держать в голове текущее состояние системной среды – все видно на экране, а если не видно, то легко можно найти.

В настоящее время для ДОС разработано довольно большое число программ-оболочек. Даже разработчики MS DOS включили в состав MS DOS свою программу-оболочку DOSSHELL. В нашей стране наиболее популярной является программа-оболочка Norton Commander. В данной программе реализован ряд идей, о которых следует сказать особо.

1. Операции, определяемые расширением файла. В NC есть возможность, установив курсор на файл и нажав клавишу Enter, инициализировать стандартную операцию для файлов с соответствующим расширением. Например, исполняемый файл в этом случае запускается на выполнение. Для текстового файла может быть вызван текстовый редактор и т.д. Пользователь сам может определить операции для разных расширений файлов.

2. Возможность работы с командной строкой ДОС. Это необходимо для выполнения функций, не поддерживаемых оболочкой. NC почти полностью «прозрачен» для команд ДОС. Оболочка называется прозрачной для команд ДОС, если она не искажает результаты работы команд. NC ведет список выполненных команд ДОС. Список выполненных команд можно просматривать, выбирая из него команды для повторного выполнения. Наиболее часто используемые команды можно включить в меню пользователя.

3. Большое число программ-вьюеров, используемых для просмотра файлов разного типа. NC сам подбирает вьюер, анализируя информацию, содержащуюся в файле. Иногда он ошибается, тогда пользователь сам должен выбрать вьюер. Это еще один пример операции, определяемой от объекта и обладающей свойством полиморфизма.

4. Возможность работы с архивами как с каталогами. Архивный файл, содержащим упакованные файлы, можно просматривать как каталог. Файлы можно копировать из архива, удалять, добавлять.

5. Разнообразные возможности поиска информации. Файл или каталог можно найти по имени, по шаблону или по содержанию.

Источник

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

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

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

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

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

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

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

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

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

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

При запуске пакетных файлов в командной строке можно указывать произвольное число параметров, значения которых можно использовать внутри файла. Это позволяет, например, применять один и тот же командный файл для выполнения команд с различными параметрами.

Если запустить его из командной строки с двумя параметрами, например

то на экран выведется сообщение

и произойдет копирование каталога C:\Programs со всеми его подкаталогами в D:\Backup.

Рассмотрим пример. Пусть командный файл my.bat вызван из командной строки следующим образом:

Например, в следующей команде:

В командных файлах имеются некоторые возможности синтаксического анализа заменяемых параметров. Для параметра с номером n (%n) допустимы синтаксические конструкции (операторы), представленные в табл. 3.1.

FnПеременная %n расширяется до полного имени файла%

DnИз переменной %n выделяется только имя диска%

PnИз переменной %n выделяется только путь к файлу%

NnИз переменной %n выделяется только имя файла%

XnИз переменной %n выделяется расширение имени файла%

SnЗначение операторов N и X для переменной %n изменяется так, что они работают с кратким именем файла%

Данные синтаксические конструкции можно объединять друг с другом, например:

DPn — из переменной %n выделяется имя диска и путь,

NXn — из переменной %n выделяется имя файла и расширение.

Рассмотрим следующий пример. Пусть мы находимся в каталоге C:\TEXT и запускаем пакетный файл с параметром Рассказ.doc ( %1=Рассказ.doc ). Тогда применение операторов, описанных в табл. 3.1, к параметру %1 даст следующие результаты:

Источник

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

Лабораторная работа №4

Использование параметров командной строки и условного выполнения команд

Цель: Овладеть навыками работы с командными файлами в Windows NT/2000, научиться работать с параметрами командной строки и циклами и условным выполнением команд.

Общие положения

В пакетный файл можно включить любую команду. Некоторые команды, такие как for, goto и if, позволяют выполнять обработку условий в пакетных файлах. Например, if позволяет запускать команды в зависимости от выполнения заданного условия. Другие команды позволяют управлять вводом и выводом, а также запускать другие пакетные файлы.

Стандартные коды ошибок, возвращаемые большинством приложений — это 0, если ошибки отсутствуют, и 1 (или более высокое значение), если возникла ошибка. Чтобы определить значения отдельных кодов, см. справочную документацию приложения.

Прервать выполнение командного файла можно с помощью комбинации Ctrl+C илиCtrl+Break. В командном файле можно вызывать другой командный файл, указав его имя и, если надо, параметры. Но после окончания работы вызванного файла выполнение исходного командного файла продолжено не будет. Если нужно продолжить выполнение после выполнения вложенного файла, можно воспользоваться командой CALL.

При описании синтаксиса команд будут использоваться следующие обозначения:

ФорматЗначение
КурсивДанные, которые должен ввести пользователь
Полужирный шрифтЭлементы, которые следует вводить точно, как показано
Пропуск (. )Параметры могут повторяться несколько раз в командной строке
В квадратных скобках ([])Необязательные элементы
В фигурных скобках (<>); варианты разделены вертикальной чертой (|). Пример:

Набор значений, из которого можно выбрать только одно значение
Шрифт CourierТекст кода или выхода программы

Команды, используемые в командных файлах

Команда Echo

Вывод на экран сообщения или задание режима вывода на экран сообщений команд. Вызванная без параметров команда echo выводит текущий режим.

Синтаксис

Параметры

Примечания

· Команда echo сообщение может оказаться полезной, если отключен режим отображения работы команд. Для вывода сообщений из нескольких строк без вывода дополнительных команд между ними следует использовать несколько последовательных команд echo сообщение после команды echo off в пакетной программе.

· Если используется команда echo off, приглашение командной строки не отображается на экране. Чтобы отобразить приглашение, введите команду echo on.

· Чтобы отключить вывод строк, введите символ «коммерческого эт» (@) перед командой в пакетном файле.

· Чтобы вывести на экране пустую строку, введите следующую команду:

· echo.

· Если требуется отключить режим отображения команд и при этом не выводить на экран строку самой команды echo, введите символ @ перед командой:

@echo off

Команда Goto

В пакетной программе передает управление Windows XP в строку, определенную меткой. Когда метка найдена, выполнение продолжается со следующей за ней строки.

Синтаксис

goto метка

Параметры

· Работа с расширениями командыgoto

Если расширения команды включены (по умолчанию они включены) и в команде goto используется метка :EOF, управление будет передано в конец файла текущего пакетного сценария для выхода из него без назначения метки. Когда используется команда goto с меткой :EOF, перед меткой должно быть вставлено двоеточие. Например: goto :EOF

· Использование допустимых значений метки

Метка может включать пробелы, но не может включать другие разделители, такие как точка с запятой или знак равенства. В команде goto используются только первые восемь знаков метки.

· Совпадение меток в пакетных программах

Метка, заданная в команде, должна соответствовать метке в тексте пакетной программы. В Windows NT/2000/XP строка пакетной программы, начинающаяся с двоеточия (:), опознается как метка и не обрабатывается как команда. Если в пакетном файле не содержится заданной метки, программа будет остановлена, а на экран будет выведено следующее сообщение:

Команда Pause

Приостанавливает выполнение пакетной программы с выводом сообщения об ожидании нажатия пользователем любой клавиши.

Синтаксис

Pause

Примечания

· При запуске команды prompt выводится следующее сообщение:

· Если при работе пакетной программы была нажата комбинация CTRL+C для ее остановки, то на экран будет выведено следующее сообщение:

Завершить выполнение пакетного файла [Y(да)/N(нет)]?

Если была нажата клавиша Y (подтверждение), пакетная программа будет закончена и управление вернется операционной системе. По этой причине команда pause может быть вставлена перед разделом пакетного файла, который потребуется пропустить. Команда pause приостанавливает выполнение пакетной программы, аналогичное действие можно сделать, нажав комбинацию CTRL+C и Y.

Команда Rem

Добавляет комментарии в пакетные файлы или файлы настройки.

Синтаксис

rem[текст]

Параметры

· Вывод комментариев на экран с помощью команды echo

Команда rem не выводит комментарии на экран. Для вывода комментариев на экран необходимо использовать команду echo on в пакетных файлах или в файле Config.nt.

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

Командным файлам из командной строки могут быть переданы аргументы. Аргументы задаются параметрами командной строки после имени файла. Файл Cmd.exe использует переменные с %0 по %9. При использовании пакетных параметров переменная %0 заменяется на имя пакетного файла, а переменные с %1 по %9 — на соответствующие аргументы, напечатанные в командной строке. Для доступа к переменным больше %9 используется команда shift. Параметр %* ссылается на все аргументы, которые передаются пакетному файлу, за исключением параметра %0.

Команда Shift

Изменяет положения пакетных параметров в пакетных файлах.

Синтаксис

Shift

Параметры отсутствуют

· Использование параметра командной строки shift с расширениями командного процессора

Если расширения командного процессора разрешены (используются по умолчанию), команда shift поддерживает ключ /n, который указывает команде начинать сдвиг с n-го аргумента, где n — число от нуля до восьми. Например:

SHIFT /2

сдвинет %3 на %2, %4 на %3 и т. д. %0 и %1 останутся неизменными.

· Работа команды shift

· Работа более чем с 10 пакетными параметрами

Команда shiftтакже может быть использована для создания пакетных программ, воспринимающих более 10 параметров. В командной строке такой программы можно задать более 10-ти параметров, при этом все параметры, следующие за десятым (то есть за переменной%9) будут последовательно помещены в эту переменную %9.

· Использование %* с командой shift

Команда shift не влияет на пакетный параметр %*.

· Смещение параметров в обратном направлении

Команды, выполняющей обратный сдвигне существует. После сдвига параметров командой shift начальное значение первого параметра (%0) не может быть восстановлено.

Команда Call

Вызов одного пакетного файла из другого без завершения выполнения первого файла. Команда call принимает метки в качестве объекта вызова. Используемая в командной строке, а не в сценарии или пакетном файле, команда Call игнорируется.

Синтаксис

call [[диск:][путь] имя_файла [пакетные_параметры]] [:метка [аргументы]]

Параметры

Источник

Параметры командного файла

Для чего используются параметры в командных файлах. Смотреть фото Для чего используются параметры в командных файлах. Смотреть картинку Для чего используются параметры в командных файлах. Картинка про Для чего используются параметры в командных файлах. Фото Для чего используются параметры в командных файлах Для чего используются параметры в командных файлах. Смотреть фото Для чего используются параметры в командных файлах. Смотреть картинку Для чего используются параметры в командных файлах. Картинка про Для чего используются параметры в командных файлах. Фото Для чего используются параметры в командных файлах Для чего используются параметры в командных файлах. Смотреть фото Для чего используются параметры в командных файлах. Смотреть картинку Для чего используются параметры в командных файлах. Картинка про Для чего используются параметры в командных файлах. Фото Для чего используются параметры в командных файлах Для чего используются параметры в командных файлах. Смотреть фото Для чего используются параметры в командных файлах. Смотреть картинку Для чего используются параметры в командных файлах. Картинка про Для чего используются параметры в командных файлах. Фото Для чего используются параметры в командных файлах

Для чего используются параметры в командных файлах. Смотреть фото Для чего используются параметры в командных файлах. Смотреть картинку Для чего используются параметры в командных файлах. Картинка про Для чего используются параметры в командных файлах. Фото Для чего используются параметры в командных файлах

Пусть в командном файле с именем «hello» записаны следующие команды:

echo «Как Вас зовут? Завершение: ctrl+d»

а файлы «file1» и «file2» содержат соответственно следующие строки

file1: Дорогой

file2: Поздравляем Вас с успешной работой в ОС LINUX!!

Создайте файлы hello, file1, file2.

Выполните команду: hello file1 file2.

Задание: Напишите командный файл, который будет выполнять поиск файла, имя которого передается через параметр, по всей файловой системе.

Переделайте этот файл так, чтобы имя файла и каталог для поиска запрашивались у пользователя (используйте команду read).

Оператор цикла for

for in

Done

Ключевые слова for, do, done пишутся с начала строки.

Пусть имеется три файла: gr1, gr2, gr3, в каждом из которых хранится список студентов данной группы в не отсортированном виде. Нужно создать сводный список студентов по группам в файле studlist.

Следующий командный файл обращается по порядку к каждому из файлов gr1, gr2, gr3, сортирует список соответствующей группы, хранящийся в файле, и добавляет в файл studlist.

Командный файл addlist:

echo «списки групп:» | cat > studlist ( в файл studlist записываем строку-заголовок)

for f in gr* (или for f in gr1 gr2 gr3) (переменная f последовательно принимает значения gr1, gr2, gr3)

Создайте файлы gr1, gr2, gr3, в каждый из которых поместите список из 3-4 фамилий (не в алфавитном порядке). Создайте командный файл addlist, выполните его. Просмотрите полученный файл studlist.

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

Командный файл make3dir:

Задание: Создайте командный файл, который в каталоге d1 создавал бы 2 текстовых файла, имена которых пользователь вводил бы через параметры команды.

Создайте командный файл make3file, который создавал бы в каждом из каталогов d1, d2, d3 текстовые файлы соответственно text1, text2, text3. Имена файлов передаются через параметры командного файла.

Командный файл renall:

echo Укажите полное имя каталога

Создайте командный файл renall, запустите его с параметром d1.

Для чего используются параметры в командных файлах. Смотреть фото Для чего используются параметры в командных файлах. Смотреть картинку Для чего используются параметры в командных файлах. Картинка про Для чего используются параметры в командных файлах. Фото Для чего используются параметры в командных файлах

Задание: Напишите командный файл, который будет осуществлять поиск слова, введенного пользователем, во всех файлах текущего каталога. Для поиска используйте команду grep (см. help по этой команде).

Команда test [ ]

Команда test проверяет выполнение некоторого условия. С использованием этой (встроенной) команды формируются операторы выбора и цикла языка shell.

Есть два возможных формата команды:

Test условие

[ условие ]

Мы будем пользоваться вторым вариантом, т.е. вместо того, чтобы писать перед условием слово test, будем заключать условие в скобки. Между скобками и содержащимся в них условием обязательно должны быть пробелы.

Условия проверки файлов:

-f имя— файл имя является обычным (регулярным)файлом;

Условия проверки строк:

-z str1— строка «str1» не существует (пустая, имеет нулевую длину).

Условия сравнения целых чисел:

/findlist (поиск файлов, созданных указанным пользователем, запись списка файлов в findlist)

/findlist (подсчет кол-ва строк в файле findlist)

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *