Logo GenDocs.ru

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

Загрузка...

Работа с интерпретатором CMD - файл Работа с интерпретатором cmd.exe.doc


Работа с интерпретатором CMD
скачать (39.4 kb.)

Доступные файлы (1):

Работа с интерпретатором cmd.exe.doc192kb.07.01.2009 00:43скачать

содержание
Загрузка...

Работа с интерпретатором cmd.exe.doc

Реклама MarketGid:
Загрузка...


ГОУ ВПО

«ДАЛЬНЕВОСТОЧНЫЙ ГОСУДАРСТВЕННЫЙ

УНИВЕРСИТЕТ ПУТЕЙ СООБЩЕНИЯ»

Кафедра: «Информационные технологии

и системы»

Расчетно-графическая работа
на тему: «Работа с интерпретатором cmd.exe»

по дисциплине: «Операционные системы среды и оболочки»
Выполнила:


Проверил:

Хабаровск

2006 год

Введение
Краткая характеристика Windows 2000/XP

1.Функции операционной системы

Операционная система представляет комплекс системных и служебных программных средств. С одной стороны, она опирается на базовое программное обеспечение компьютера, входящее в его систему BIOS (базовая система ввода-вывода), с другой стороны, она сама является опорой для программного обеспечения более высоких уровней – прикладных и большинства служебных приложений. Приложениями операционной системы принято называть программы, предназначенные для работы под управлением данной системы.

^ Основная функция всех операционных систем – посредническая. Она заключается в обеспечении нескольких видов интерфейса:

  • Интерфейса между пользователем и программно-аппаратными средствами компьютера (интерфейс пользователя);

  • Интерфейс между программным и аппаратным обеспечением (аппаратно-программный интерфейс);

  • Интерфейса между разными видами программного обеспечения (программный интерфейс).

Даже для одной аппаратной платформы, например такой, как IBM PC, существует несколько операционных систем. Различия между ними рассматривают в двух категориях: внутренние и внешние. Внутренние различия характеризуются методами реализации основных функций. Внешние различия определяются наличием и доступностью приложений данной системы, необходимых для удовлетворения технических требований, предъявляемых к конкретному рабочему месту.

2. Организация файловой системы

Все современные дисковые ОС обеспечивают создание файловой системы, предназначенной для хранения данных на дисках и обеспечения доступа к ним. Принцип организации файловой системы – табличный.

FAT

Поскольку нарушение FAT-таблицы приводит к невозможности воспользоваться данными, записанными на диске, к ней предъявляются особые требования надежности, и она существует в двух экземплярах, идентичность которых регулярно контролируется средствами ОС.

ОС MS-DOS, OS/2, Windows 95 и Windows NT реализуют 16-разрядные поля в таблицах размещения файлов. Такая файловая система называется FAT 16. Она позволяет разместить в FAT-таблицах не более 65536 записей () о местоположении единиц хранения данных и, соответственно, для дисков объемом от 1 до 2 Гбайт длина кластера составляет 32 Кбайт (64 сектора). Это не вполне рациональный расход рабочего пространства, поскольку любой файл (даже очень мелкий) полностью оккупирует весь кластер, которому соответствует только одна адресная запись в таблице размещения файлов. Даже если файл достаточно велик и располагается в нескольких кластерах, все равно в его конце образуется некий остаток, нерационально расходующий целый кластер.

Для современных жестких дисков потери, связанные с неэффективностью файловой системы, весьма значительны и могут составлять от 25% до 40% полной емкости диска, в зависимости от среднего размера хранящихся файлов. С дисками же размером более 2 Гбайт файловая система FAT 16 вообще работать не может.

Уже создали операционную систему, которая обеспечивает более совершенную организацию файловой системы – FAT 32 с 32-разрядными полями в таблице размещения файлов. Для дисков размером до 8 Гбайт эта система обеспечивает размер кластера 4 Кбайт (8 секторов).

NTFS

NTFS представляет собой выдающиеся достижения структуризации, каждый элемент системы представляет собой файл, даже служебной информации.

Раздел NTFS, теоретически, может быть какого угодно размера. Как и FAT 16 и FAT 32 NTFS делит все полученное место на кластеры. Кластер может иметь от 512 байт до 64 Кбайт.

NTFS условно делится на две части. Первые 12% диска отводятся, в так называемую зону MFT – это пространство, в которое растет метофаил. MFT зона всегда держится пустой, это делается для того. Чтобы главный служебный файл MFT не фрагментировался, остальные 88% диска представляют обычное пространство для хранения файлов.

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

3. Инструменты Windows:

Панель инструментов находится под строкой основного меню. Пример каждого инструмента легко узнать, установив стрелку курсора на соответствующем инструменте. Через секунду ниже картинки появляется соответствующая информация.

На Панели инструментов вынесены следующие стандартные действия:

  • Файл – работа с файлами (значками, ярлыками, папками);

  • Правка – операции редактирования;

  • Вид – изменение вида окна;

  • Избранное – это папка, предназначенная для хранения ярлыков к часто используемым веб-страницам, а также папкам и файлам;

  • Сервис – имеет две команды: Найти – поиск объекта (папки или значка) по имени; Перейти – переход к объекту по имени, заданному в диалоговом окне;

  • Справка – включение помощи.

Нижняя строка окна – информационная строка (строка состояния) – содержит информацию о выделенном объекте.

^ 4. Графическая оболочка, графический интерфейс

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

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

^ Рабочий стол представляет собой поле, занимающее почти весь экран. Внешний вид этого поля задается в процессе настройки оболочки Windows.

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

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

Стандартные элементы^ Главного меню:

  • Программы. Это каскадное меню дает быстрый доступ ко всем стандартным программам, которые поставляются в составе Windows.

  • Документы. Этот пункт содержит подменю с пятнадцатью последними документами и папками, с которыми работали.

  • Настройка. Это каскадное меню дает возможность доступа к Панели управления (используется для конфигурирования системы), к папке Принтеры (которая позволяет управлять всеми имеющимися принтерами) и к листам свойств самой Панели задач.

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

  • Справка. Открывает справочную систему Windows.

  • Выполнить. Эта команда обеспечивает быстрый запуск программ из командной строки. Используется когда необходимо ввести команду с указанием параметров, например команду format a:.

  • Остановка. Эта команда появляется в меню Пуск, если данный ПК поддерживает режим экономии питания. Она используется для перевода ПК в этот режим.

  • ^ Завершение работы. Используется для завершения работы с Windows с запросами о характере завершения работы. Windows – это сложная графическая среда, поэтому, завершая работу с ней, нельзя просто взять и выключить компьютер. В этом случае можно потерять данные.



Команды cmd
1.Команда CD

CD [/D] [диск:][путь]- Вывод имени либо смена текущей папки.

Команда CD диск: отображает имя текущего каталога указанного диска, без параметров отображает имена текущих диска и каталога.

Параметр /D используется для одновременной смены текущих диска и каталога.

Изменение команды CHDIR при включении расширенной обработки команд:

Имя текущего каталога в строке вызова преобразуется к тому же регистру символов, что и для существующих имен на диске. Так, команда CD C:\TEMP на самом деле сделает текущим каталог C:\Temp, если он существует на диске.

Команда CHDIR перестает рассматривать пробелы как разделители, что позволяет перейти в подкаталог, имя которого содержит пробелы, не заключая все имя каталога в кавычки. Например: cd \winnt\profiles\username\programs\start menu

приводит к тому же результату, что и: cd "\winnt\profiles\username\programs\start menu"

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

Пример: 1.Смена текущего каталога

frame1 2.Текущими каталогами стали - «Задания», «Задание 1»

frame2 3.Переход в корневой каталог

frame3

2.Команда DIR

[диск:][путь][имя_файла] [/A[[:]атрибуты]] [/B] [/C] [/D] [/L] [/N] [/O[[:]порядок]] [/P] [/Q] [/S] [/T[[:]время]] [/W] [/X] [/4]

Вывод списка файлов и подкаталогов из указанного каталога

[диск:][путь][имя_файла] Диск, каталог и/или файлы, которые следует включить в список.

/A Вывод файлов с указанными атрибутами.

атрибуты D Каталоги R Доступные только для чтения

H Скрытые файлы A Файлы для архивирования

S Системные файлы Префикс "-" имеет значение НЕ

/B Вывод только имен файлов.

/C Применение разделителя групп разрядов для вывода размеров файлов(по умолчанию). Для отключения ключ /-C.

/D Вывод списка в несколько столбцов с сортировкой по столбцам.

/L Использование нижнего регистра для имен файлов.

/N Отображение имен файлов в крайнем правом столбце.

/O Сортировка списка отображаемых файлов.

порядок N По имени (алфавитная) S По размеру (сперва меньшие)

E По расширению (алфавитная) D По дате (сперва более старые)

G Начать список с каталогов Префикс "-" обращает порядок

/P Пауза после заполнения каждого экрана.

/Q Вывод сведений о владельце файла.

/S Вывод списка файлов из указанного каталога и его подкаталогов.

/T Выбор поля времени для отображения и сортировки

время C Создание A Последнее использование W Последнее изменение

/W Вывод списка в несколько столбцов.

/X Отображение коротких имен для файлов, чьи имена не соответствуют стандарту 8.3. Формат аналогичен выводу с ключом /N, но короткие имена файлов выводятся слева от длинных. Если короткого имени у файла нет, вместо него выводятся пробелы.

/4 Вывод номера года в четырехзначном формате.

Стандартный набор ключей можно записать в переменную среды DIRCMD. Для отмены их действия введите в команде те же ключи с префиксом "-", например: /-W.

Пример: 1.Отображает содержимое текущей папки

frame4 2. Вывод информации в текстовый файл

frame5 3. Добавляет информацию в конец файла

frame63.Команда TYPE

TYPE [диск:][путь]имя_файла

Вывод содержимого одного или нескольких текстовых файлов

frame7

4.Команда MORE и | - конвейер

MORE [/E [/C] [/P] [/S] [/Tn] [+n]] < [диск:][путь]имя_файла имя_команды | MORE [/E [/C] [/P] [/S] [/Tn] [+n]]

MORE /E [/C] [/P] [/S] [/Tn] [+n] [файлы]

Последовательный вывод данных по частям размером в один экран.

[диск:][путь]имя_файла Файл, отображаемый по фрагментам.

имя_команды Команда, вывод которой отображается на экране.

/E Разрешение использования дополнительных возможностей.

/C Очистка экрана перед выводом каждой страницы.

/P Учет символов перевода страницы.

/S Сжатие нескольких пустых строк в одну строку.

/Tn Замена символов табуляции n пробелами (по умолчанию n = 8).

Стандартный набор ключей можно поместить в переменную среды MORE.

+n Начало вывода первого файла со строки с номером n.

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

Если использование дополнительных возможностей разрешено, в ответ на приглашение -- More -- можно вводить следующие команды:

P n Вывод следующих n строк.

S n Пропуск следующих n строк.

F Вывод следующего файла.

Q Завершение работы.

= Вывод номера строки.

? Вывод строки подсказки.

<пробел> Вывод следующей страницы.

<ENTER> Вывод следующей строки.

| - Конвейер, органичное последовательное выполнение команд друг за другом

Пример: 1. Для поэкранного просмотра помощи команды xcopy

A:\.>xcopy/?|more




5.Команда SORT

SORT [/R] [/+n] [/M килобайтов] [/L язык] [/RE recordbytes]

[[диск1:][путь1]имя_файла1] [/T [диск2:][путь2]]

[/O [диск3:][путь3]имя_файла3]

Сортировка ввода

/+n Задает число символов, n, до начала каждого сравнения. /+3 показывает, что каждое сравнение будет начинаться с третьего символа каждой строки. Строки меньше чем n символов собираются перед всеми остальными строками. По умолчанию, сравнение начинается с первого символа каждой строки.

/L[OCALE] язык Перекрывает установленные в системе по умолчанию язык и раскладку заданными. Пока существует возможность только одного выбора: ""C"" - наиболее быстрый способ упорядочивания последовательности. Сортировка всегда идет без учета регистра.

/M[EMORY] килобайтов Задает количество основной памяти, используемой для сортировки, в килобайтах. Размер памяти должен быть не менее 160КБ. При явном задании размера памяти именно это количество будет использовано, невзирая на то, какое количество основной памяти доступно в системе. Наилучшей производительности можно добиться, не задавая размер памяти. По умолчанию, сортировка выполняется за один проход (без временного файла), используя максимально доступный размер памяти. В остальных случаях, сортировка выполняется за два прохода (с сохранением частично отсортированных данных во временном файле), так что количество памяти, используемой для обоих проходов, - одинаково. По умолчанию, максимальный объем памяти равен 90% доступной основной памяти, если входными и выходными потоками являются файлы на диске, и 45% доступной основной памяти - иначе.

/REC[ORD_MAXIMUM] символов Определяет максимальной число символов в записи(по умолчанию 4096, максимально возможное 65535).

/R[EVERSE] Обратный порядок сортировки; т.е. сортировка идет от Я до А, и затем от 9 до 0.

[диск1:][путь1]имя_файла1 Определяет имя сортируемого файла. Если оно опущено, то будет использоваться стандартный поток

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

/T[EMPORARY] [диск2:][путь2] Определяет путь к папке, содержащей рабочие файлы сортировки, в том случае, когда данные не помещаются в основной памяти. По умолчанию используется системная временная папка.

/O[UTPUT] [диск3:][путь3]имя_файла3 Определяет имя файла, в котором сохраняются отсортированные результаты. Если оно опущено данные записываются в стандартный поток вывода. Явное задание файла вывода работает быстрее, чем перенаправление стандартного потока вывода в этот же файл.

Пример: 1. Для поэкранного просмотра отсортированного в обратном порядке файла

frame9
6.Команда RD

RMDIR [/S] [/Q] [диск:]путь

RD [/S] [/Q] [диск:]путь

Удаление каталога.

/S Удаление дерева каталогов, т. е. не только указанного каталога, но и всех содержащихся в нем файлов и подкаталогов.

/Q Отключение запроса подтверждения при удалении дерева каталогов с помощью ключа /S.

Пример: 1. Удаление пустой папки «ааа»

frame10

7.Команда DEL

DEL [/P] [/F] [/S] [/Q] [/A[[:]атрибуты]] имена

ERASE [/P] [/F] [/S] [/Q] [/A[[:]атрибуты]] имена

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

Если указан каталог, из него будут удалены все файлы.

/P Запрос на подтверждение перед удалением каждого файла.

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

/S Удаление указанных файлов из всех подкаталогов.

/Q Отключение запроса на подтверждение при удалении файлов.

/A Отбор файлов для удаления по атрибутам.

Атрибуты S Системные файлы R Доступные только для чтения

H Скрытые файлы A Файлы для архивирования

Префикс "-" имеет значение НЕ

Изменение команд DEL и ERASE при включении расширенной обработки команд:

Результаты вывода для ключа /S принимают обратный характер, то есть выводятся только имена удаленных файлов, а не файлов, которые не удалось найти.

Пример: 1. Удаление всех файлов с расширением .txt

frame112. Удаление файлов начинающих с буквы «Т»

frame123.Удаление всех файлов, подкаталоги останутся без изменений

frame13

8.Команда COPY и XCOPY

COPY

[/V] [/N] [/Y | /-Y] [/Z] [/A | /B] источник [/A | /B] [+ источник [/A | /B] [+ ...]] [результат [/A | /B]]:

источник Имена одного или нескольких копируемых файлов.

/A Файл является текстовым файлом ASCII.

/B Файл является двоичным файлом.

результат Каталог и/или имя для конечных файлов.

/V Проверка правильности копирования файлов.

/N Использование, если возможно, коротких имен при копировании файлов, чьи имена не удовлетворяют стандарту 8.3.

/Y Подавление запроса подтверждения на перезапись существующего конечного файла.

/-Y Обязательный запрос подтверждения на перезапись существующего конечного файла.

/Z Копирование сетевых файлов с возобновлением.

Ключ /Y можно установить через переменную среды COPYCMD.

Ключ /-Y командной строки переопределяет такую установку.

По умолчанию требуется подтверждение, если только команда COPY не выполняется в пакетном файле

XCOPY

Чтобы объединить файлы, укажите один конечный и несколько исходных файлов, используя подстановочные знаки или формат "файл1+файл2+файл3+...". Копирование файлов и структур каталогов.

источник [результат] [/A | /M] [/D[:дата]] [/P] [/S [/E]] [/V] [/W]

[/C] [/I] [/Q] [/F] [/L] [/H] [/R] [/T] [/U]

[/K] [/O] [/X] [/Y] [/-Y] [/N] [/Z] [/EXCLUDE:файл1[+файл2][+файл3]...]

источник Копируемые файлы.

результат Местоположение и/или имена новых файлов.

/A Копирование только файлов с установленным архивным атрибутом. Сам атрибут при этом не изменяется.

/M Копирование только файлов с установленным архивным атрибутом. После копирования атрибут снимается.

/D:дата Коп. файлов, измененных не ранее указанной даты. Если дата не указана, заменяются только конечные файлы

/EXCLUDE:файл1[+файл2][+файл3]...Список файлов, содержащих строки. Когда любая из строк Совпадает с любой частью абсолютного пути к копируемому файлу, такой файл исключается из операции копирования. К примеру, указав строку \obj\ или .obj можно исключить все файлы из папки obj или все файлы с расширением obj соответственно.

/P Вывод запросов перед созданием каждого нового файла.

/S Копирование каталогов с подкаталогами (кроме пустых).

/E Копирование каталогов с подкаталогами (в том числе пустых).

Эквивалентен сочетанию ключей /S /E. Совместим с ключом /T. /V

Сравнение конечных файлов с исходными.

/W Вывод запроса на нажатие клавиши перед копированием.

/C Продолжение копирования, независимо от наличия ошибок.

/I Если результат не существует, а копируется несколько файлов, считается, что указано имя каталога.

/Q Запрет вывода имен копируемых файлов.

/F Вывод полных имен исходных и конечных файлов.

/L Вывод имен копируемых файлов.

/H Копирование скрытых и системных файлов (среди прочих).

/R Разрешение замены файлов, предназначенных только для чтения.

/T Создание структуры каталогов (кроме пустых каталогов) без копирования файлов. Если требуется создать пустые каталоги и подкаталоги, используйте сочетание ключей /T /E.

/U Копирование только файлов, уже имеющихся в конечном каталоге.

/K Копирование атрибута "Только чтение" (обычно он сбрасывается).

/N Использование коротких имен при копировании.

/O Копирование сведений о владельце и данных ACL.

/X Копирование параметров аудита файлов (требует /O).

/Y Подавление запроса подтверждения на перезапись существующего конечного файла. /-Y Обязательный запрос подтверждения на перезапись существующего конечного файла.

/Z Копирование сетевых файлов с возобновлением.

Ключ /Y можно установить через переменную среды COPYCMD. Ключ /-Y командной строки переопределяет такую установку.

Пример: 1. Копирование text.txt в A:\Задания\Новая

frame142. При копировании имя файла будет изменено

frame15

9.Команда >> , > и <

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

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

^ Команда > имя_файла

Если при этом заданный для вывода файл уже существует, то он перезаписывается.

Можно не создавать файл заново, а дописать информацию в конец файла:

^ Команда >> имя_файла

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

Команда < имя_файла

Наконец, с помощью конструкции:

^ Команда1 | команда2

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

Пример: 1. Добавление справки в конец файла file.txt

frame16 2. Ввод новой даты из файла file.txt в my.txt

frame17

10.Команда COROL

COLOR - Установка цветов по умолчанию для текста и фона в текстовых окнах.

Атрибуты цветов задаются в виде ДВУХ шестнадцатеричных цифр - первая задает цвет фона,

а вторая определяет цвет текста. Каждая цифра может иметь следующие значения:

0 = Черный 8 = Серый

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

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

3 = Голубой B = Светло-голубой

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

5 = Лиловый D = Светло-лиловый

6 = Желтый E = Светло-желтый

7 = Белый F = Ярко-белый

Если аргумент не указан, команда восстанавливает исходный выбор цветов, каким он был на момент запуска CMD.EXE. Это значение извлекается из текущего текстового окна, из значения ключа /T или из значения параметра реестра DefaultColor.

Команда COLOR возвращает значение кода ошибки ERRORLEVEL 1 при попытке вызова этой команды с совпадающими значениями цвета текста и цвета фона.
11.Команда EXIT

EXIT [/B] [exitCode]

/B Предписывает завершить текущий пакетный файл-сценарий вместо завершения CMD.EXE.

Если выполняется вне пакетного файла-сценария, то будет завершена программа CMD.EXE

exitCode Указывает цифровое значение. Если указан ключ /B, определяет номер для ERRORLEVEL. В случае завершения работы CMD.EXE, устанавливает код завершения процесс с данным номером.

12.Команда FIND

FIND

[/V] [/C] [/N] [/I] "строка" [[диск:][путь]имя_файла[ ...]]

Поиск текстовой строки в одном или нескольких файлах.

/V Вывод всех строк, НЕ содержащих заданную строку.

/C Вывод только общего числа строк, содержащих заданную строку.

/N Вывод номеров отображаемых строк.

/I Поиск без учета регистра символов.

"строка" Искомая строка.

[диск:][путь]имя_файла Один или несколько файлов, в которых выполняется поиск.

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

Командные файлы
1.Команды ECHO OFF,ECHO ON

ECHO [ON | OFF] ECHO [сообщение]

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

Введите ECHO без параметра для определения текущего значения этой команды. Завершает программу CMD.EXE (интерпретатор команд) или текущий пакетный файл-сценарий.
Пример: 1. Отключение\включение дублирования команд

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

@ECHO OFF

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

Пример: 1. Направляет сообщение, выводимые командой echo, в заданный текстовый файл

frame19

3.Команда %0,%1, …,%9

Назначение: Для доступа к параметрам командной строки

Вместо %0 подставляем имя выполняемого пакетного файла, а вместо %1, %2, …,%9 – значения первых девяти параметров командной строки соответственно.

Пример: 1. Пусть имеется командный файл cat.bat такого содержания:

frame20 Где /s – копирование каталогов с подкаталогами (кроме пустых).

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

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

frame22И произойдет копирование каталога A:\Programs со всеми его подкаталогами в A:\Programs2.
4.Команда SHIFT

SHIFT [/n]

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

Команда SHIFT при включении расширенной обработки команд поддерживает ключ /n,

задающий начало сдвига параметров с номера n, где n может быть от 0 до 9. Например, в следующей команде:

SHIFT /2 %3 заменяется на %2, %4 на %3 и т.д., а %0 и %1 остаются без изменений.

Назначение: Изменяет значения замещаемых параметров с %0 по %9, копируя каждый параметр в предыдущий, т.е. значения %1 копируется в %0, значение %2 – в %1 и т.д.

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

frame23

Тогда %0= my.bat, %1=р1, %2=р2, %3=р3, параметры %4 - %9 являются пустыми строками. После выполнения Shift значения замещаемых параметров изменятся: %0=р1, %1=р2, %2=р3, параметры %3 - %9 – пустые строки.
5.Команда SET

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

Пример: 1. Пусть имеется командный файл cat2.bat такого содержания:

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


Значение переменной MyVar: Привет!



6.Команда PAUSE

Пример: 1. Приостановка, обязательно нужно использовать при выполнении потенциально опасных действий.

frame26

7.Команда FORINDO

FOR

%переменная IN (набор) DO команда [параметры]

Выполнение указанной команды для каждого файла набора.

%переменная Подставляемый параметр.

(набор) Набор, состоящий из одного или нескольких файлов.

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

[Параметры] Параметры и ключи для указанной команды.

В пакетных файлах для команды FOR используется запись %%переменная вместо %переменная. Имена переменных учитывают регистр букв (%i отличается от %I).

Добавление поддерживаемых вариантов команды FOR при включении расширенной обработки команд: FOR /D %переменная IN (набор) DO команда [параметры]

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

^ FOR /R [[диск:]путь] %переменная IN (набор) DO команда [параметры]

Выполнение команды для каталога [диск:]путь, а также для всех подкаталогов этого пути. Если после ключа /R не указано имя каталога, выполнение команды начинается с текущего каталога. Если вместо набора указана только точка (.), команда выводит список всех подкаталогов.

^ FOR /L %переменная IN (начало,шаг,конец) DO команда [параметры]

Набор раскрывается в последовательность чисел с заданными началом, концом и шагом приращения.Так, набор(1,1,5) раскрывается в (1 2 3 4 5), а набор(5,-1,1) заменяется на (5 4 3 2 1)

FOR /F ["ключи"] %переменная IN (набор) DO команда [параметры]

FOR /F ["options"] %variable IN ("literal string") DO command [command-parameters] FOR /F ["options"] %variable IN ('command') DO command [command-parameters] or, if usebackq option present:

FOR /F ["options"] %variable IN (filenameset) DO command [command-parameters]

FOR /F ["options"] %variable IN ('literal string') DO command [command-parameters] FOR /F ["options"] %variable IN (`command`) DO command [command-parameters]

Набор содержит имена одного или нескольких файлов, которые по очереди открываются, читаются и обрабатываются. Обработка состоит в чтении файла, разбивки его на отдельные строки текста и выделения из каждой строки заданного числа подстрок (в том числе нуля). Затем найденная подстрока используется в качестве значения переменной при выполнении основного тела цикла. По умолчанию ключ /F выделяет из каждой строки файла первое слово, очищенное от окружающих его пробелов. Пустые строки в файле пропускаются. Необязательный параметры "ключи" служит для переопределения заданных по умолчанию правил обработки строк. Ключи представляют собой заключенную в кавычки строку, содержащую указанные different parsing options.

The keywords are:

eol=c - определение символа комментариев в конце строки(допускается задание только одного символа).

skip=n - число пропускаемых при обработке строк в начале файла.

delims=xxx - определение набора разделителей для замены заданных по умолчанию пробела и знака табуляции.

tokens=x,y,m-n - определение номеров подстрок, выделяемых из каждой строки файла и передаваемых для выполнения в тело цикла. При использовании этого ключа создаются дополнительные переменные. Формат m-n представляет собой диапазон подстрок с номерами от m по n. Если последний символ в строке tokens= является звездочкой, создается дополнительная переменная, значением которой будет весь оставшийся текст в строке после обработки последней подстроки.

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

Вот поясняющий Пример: 1.:

FOR /F "eol=; tokens=2,3* delims=, " %i in (myfile.txt) do @echo %i %j %k

-Эта команда обрабатывает файл myfile.txt, пропускает все строки, которые начинаются с символа точки с запятой, и передает вторую и третью подстроки из каждой строки в тело цикла, причем подстроки разделяются запятыми и/или пробелами. В теле цикла переменная %i используется для второй подстроки, %j - для третьей, а %k получает все оставшиеся подстроки после третьей.

- Переменная %i явно описана в инструкции for, а переменные %j и %k описываются неявно с помощью ключа tokens=. Ключ tokens= позволяет извлечь из одной строки файла до 26 подстрок, то есть, запрещено использовать имена переменных, начинающиеся не с букв английского алфавита (a-z). Следует помнить, что имена переменных FOR являются глобальными, поэтому одновременно не может быть активно более 26 переменных.

-Синтаксис команды FOR /F также позволяет обработать отдельную строку. Для этого следует ввести нужную строку в кавычках вместо набора имен файлов в скобках. Строка будет обработана так, как будто она взята из файла.

-Наконец, команда FOR /F позволяет обработать строку вывода другой команды. Для этого следует ввести строку вызова команды в апострофах вместо набора имен файлов в скобках. Строка передается для выполнения обработчику команд CMD.EXE, а вывод этой команды записывается в память и обрабатывается так, как будто строка вывода взята из файла. Например, следующая команда: FOR /F "delims==" %i IN ('set') DO @echo %i

выведет перечень имен всех переменных среды, определенных в настоящее время в системе.

Операции подстановки ссылок на переменные команды FOR также расширены. Допускается применение следующих синтаксических конструкций:

%~I - из переменной %I удаляются обрамляющие кавычки (")

%~fI - переменная %I расширяется до полного имени файла

%~dI - из переменной %I выделяется только имя диска

%~pI - из переменной %I выделяется только путь к файлу

%~nI - из переменной %I выделяется только имя файла

%~xI - из переменной %I выделяется расширение имени файла

%~sI - полученный путь содержит только короткие имена

%~aI - переменная %I расширяется до атрибутов файла

%~tI - переменная %I расширяется до даты /времени файла

%~zI - переменная %I расширяется до размера файла

%~$PATH:I - проводится поиск по каталогам, заданным в переменной среды PATH, и переменная %I заменяется на полное имя первого найденного ни один файл, то этот модификатор заменяется на пустую строку файла.

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

%~dpI- переменная %I заменяется только на имя диска и путь

%~nxI - переменная %I заменяется только на имя файла и его расширение

%~fsI - переменная %I заменяется только на полный путь с краткими именами

%~dp$PATH:I - проводится поиск по каталогам, заданным в переменной среды PATH, и переменная %I заменяется на имя диска и путь к первому найденному файлу.

%~ftzaI- переменная %I заменяется на строку, выдаваемую командой DIR

В приведенных выше примерах переменные %I и PATH можно заменить на любые другие допустимые значения. В таких синтаксических конструкциях за символами %~ может следовать любое имя переменной цикла FOR. Рекомендуется использовать заглавные буквы для имен таких переменных, например, %I, что делает их более заметными, а также позволяет отличать их от обозначений модификаторов, которые не различают используемый регистр.

Назначение: Для организации циклов

For %%переменная In (множество) Do команда [параметры]

Пример: 2.

frame27На экран будет выведено:

frame28

8.Команда СALL файл

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

Пример: 1.

frame29В этом случае после завершения работы файла f.bat управление вернется в первоначальный файл на строку, следующую за командой CALL (в нашем примере это команда СOPY A:\*.* C:\).
9.Команды Метка – «:» и GOTO

GOTO метка

Передача управления содержащей метку строке пакетного файла

метка Строка пакетного файла, оформленная как метка. Метка должна находиться в отдельной строке и начинаться с двоеточия

Команда GOTO принимает в качестве метки перехода строку :

EOF, которая вызывает передачу управления в конец текущего пакетного файла. Это позволяет легко выйти из пакетного файла без определения каких-либо меток.

CALL /? выводит описание расширенных возможностей команды CALL, делающих эту функцию особенно полезной

Назначение: Любая строка, начинающаяся с «:», воспринимается при обработке командного файла как метка. Имя метки задается набором символов, следующих за «:» до первого пробела или конца строки.
Пример: 1. Пусть имеется командный файл:



@echo off

copy %1 %2

goto Labe11

echo Эта строка никогда не выполняется

:Labe11

rem Продолжение выполнения

dir %2




После того, как в этом файле мы доходим до команды

goto Labe11

его выполнение продолжается со строки

rem Продолжение выполнения
10.Команды IF

IF [NOT] ERRORLEVEL число команда

IF [NOT] строка1==строка2 команда

IF [NOT] EXIST имя_файла команда

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

NOT Обращает истинность условия: истинное условие становится ложным, а ложное-истинным.

ERRORLEVEL число Условие является истинным, если код возврата последней выполненной программы не меньше указанного ч.

строка1==строка2 Это условие является истинным, если указанные строки совпадают.

EXIST имя_файла Это условие является истинным, если файл с указанным именем существует

Команда Задает команду, выполняемую при истинности условия.

За этой командой может следовать ключевое слово ELSE, служащее для указания команды, которая должна выполняться в том случае, если условие ложно. Предложение ELSE должно располагаться в той же строке, что и команда, следующая за ключевым словом IF. Например: IF EXIST имя_файла. ( del имя_файла) ELSE (echo имя_файла. missing. ).

Следующий пример содержит ОШИБКУ, поскольку команда del должна заканчиваться переходом на новую строку:

IF EXIST имя_файла. del имя_файла. ELSE echo имя_файла. Missing

Следующий пример также содержит ОШИБКУ, поскольку команда ELSE должна располагаться в той же строке, что и команда, следующая за IF: IF EXIST имя_файла. del имя_файла. ELSE echo имя_файла. missing

Вот правильный пример, где все команды расположены в одной строке:

IF EXIST имя_файла. (del имя_файла.) ELSE echo имя_файла. missing

Изменение команды IF при включении расширенной обработки команд:

IF [/I] строка1 оператор_сравнения строка2 команда

IF CMDEXTVERSION число команда

IF DEFINED переменная команда

где оператор_сравнения принимает следующие значения:

EQL - равно

NEQ - не равно

LSS - меньше

LEQ - меньше или равно

GTR - больше

GEQ - больше или равно

а ключ /I, если он указан, задает сравнение текстовых строк без учета регистра. Ключ /I можно также использовать и в форме строка1==строка2 команды IF. Сравнения проводятся по общему типу данных, так что если строки 1 и 2 содержат только цифры, то обе строки преобразуются в числа, после чего выполняется сравнение чисел.

Условие CMDEXTVERSION применяется подобно условию ERRORLEVEL, но значение сравнивается с внутренним номером версии текущей реализации расширенной обработки команд. Первая версия имеет номер 1. Номер версии будет увеличиваться на единицу при каждом добавлении существенных возможностей расширенной обработки команд. Если расширенная обработка команд отключена, условие CMDEXTVERSION никогда не бывает истинно.

Условие DEFINED применяется подобно условию EXISTS, но принимает в качестве аргумента имя переменной среды и возвращает истинное значение, если эта переменная определена.

Строка %ERRORLEVEL% будет развернута в строковое представление текущего значения кода ошибки ERRORLEVEL, за исключением ситуации, когда уже имеется переменная среды с именем ERRORLEVEL; в подобном случае подставляется значение этой переменной. Например, с помощью данной строки можно выполнить следующее:

goto answer%ERRORLEVEL%:answer0

echo Получен код возврата 0:answer1 echo Получен код возврата 1

Допускается и применение описанных выше операторов числового сравнения:

IF %ERRORLEVEL% LEQ 1 goto okay

Строка %CMDCMDLINE% будет развернута в исходную командную строку, переданную CMD.EXE до любой обработки, за исключением ситуации, когда уже определена переменная среды с именем CMDCMDLINE, в подобном случае подставляется значение этой переменной.

Строка %CMDEXTVERSION% будет развернута в строку, представляющую собой текущее значение CMDEXTVERSION, за исключением ситуации, когда уже имеется переменная среды с именем CMDEXTVERSION; в подобном случае подставляется значение этой переменной.
С помощью команды IF в пакетных файлах можно выполнять обработку условий 3 типов.

Первый тип

Назначение: Используется для проверки значения переменной.

If [not] cтрока==строка2 команда

cтрока==строка2 – истинно при точном совпадении обеих строк

not – указывает на то,что команда выполняется , когда строки не совпадают

Пример: 1. Пусть имеется командный файл primer.bat:

frame31Если primer.bat запустить с четырьмя параметрами:

primer.bat A Б В Г

То в результате выполнения на экран выведется:

frame32

^ Второй тип

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

If [not] exist файл команда

Условие считается истинным, если указанный файл существует.

Ключ not позволяет проверить отсутствие заданного файла:


If not exist C:\my.bat echo У вас нет файла my.bat



^ Третий тип

Назначение: Это проверка кода завершения (кода выхода) предыдущей команды

If [not] ERRORLEVEL число команда

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

Пример: 1. Пусть имеется командный файл mycopy.bat:

frame34

11.Команда CHOISE

Назначение: Выводит пользователю заданную подсказку и ждет, пока он выберет нужный вариант из указанного набора клавиш.

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

[/N] – ни сами варианты, ни знак вопроса в строке приглашения не отображаются.

[/S] – позволяет учитывать регистр символов.

/T[:] – задержка в течении заданного числа секунд

c – символ по умолчанию

nn – секунды

/C[:]варианты – задает варианты ответа пользователя, по умолчанию YN

Пример: 1. В командном файле:

frame35То пользователь увидит:

frame36[текст] – Задает текс, который вы хотите выводить перед подсказкой

Пример: 2.

frame37То пользователь увидит:


Yes, No, or Cancel [Y, N, C]?




Пример: 3. Рассмотрим файл mymenu.bat

frame39

Пояснительная записка
Задача №1

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

Сохраняем на диске под названием my.bat. После сохранения запускаем этот файл через командную строку:

frame41

После этого выведется на экран командной строки сообщение:

frame42

Это означает, что файлы откопированы успешно.



Скачать файл (39.4 kb.)

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

© gendocs.ru
При копировании укажите ссылку.
обратиться к администрации