рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Перенаправление ввода/вывода и конвейеризация композиция команд

Перенаправление ввода/вывода и конвейеризация композиция команд - раздел Политика, Оглавление 61 Командный Интерпретатор Windows. 2 1.1 Запуск...

Оглавление

61 Командный интерпретатор Windows. 2

1.1 Запуск оболочки cmd.exe. 2

1.2 Внутренние и внешние команды. Структура команд. 2

1.3 Перенаправление ввода/вывода и конвейеризация (композиция) команд. 4

1.4 Команды MORE и SORT. 5

1.5 Условное выполнение и группировка команд. 7

1.6 Примеры команд для работы с файловой системой. 8

1.6.1 Пути к объектам файловой системы.. 8

1.6.2 Команда CD.. 9

1.6.3 Команда COPY.. 9

1.6.4 Команда XCOPY.. 11

1.6.5 Команда DIR.. 13

1.6.6 Команды MKDIR и RMDIR.. 15

1.6.7 Команда DEL.. 16

1.6.8 Команда REN.. 16

1.6.9 Команда MOVE.. 16

2 Командные файлы.. 17

2.1 Назначение. 17

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

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

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

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

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

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

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

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

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

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

2.7 Операторы перехода. 26

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

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

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

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

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

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

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

2.9.1 Цикл FOR … IN … DO …... 33

2.9.2 Цикл FOR /D … IN … DO …... 34

2.9.3 Цикл FOR /R … IN … DO …... 35

2.9.4 Цикл FOR /L … IN … DO …... 35

2.9.5 Цикл FOR /F … IN … DO …... 37

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

3 Задание на лабораторную работу. 41

4 Справка по командам для выполнение задания. 42

Командный интерпретатор Windows.

Запуск оболочки cmd.exe

Командный интерпретатор Cmd.exe, как и другие исполняемые файлы, находится в каталоге %SystemRoot%SYSTEM32 (значением переменной среды %SystemRoot%… Для запуска командного интерпретатора (открытия нового сеанса командной…

Внутренние и внешние команды. Структура команд

Для выполнения команды после приглашения командной строки надо ввести имя этой команды (регистр не важен), ее параметры и ключи (если они… Например: C:>COPY C:myfile.txt D: /V

Отображение и изменение атрибутов файлов.

+ Установка атрибута. - Снятие атрибута. R Атрибут "Только чтение".

Замечание

1.3 Перенаправление ввода/вывода и конвейеризация (композиция) команд Windows поддерживает UNIX-концепции переназначения устройств стандартного… В командной строке для того, чтобы перенаправить текстовые сообщения, выводимые какой-либо командой, в текстовый файл,…

Команды MORE и SORT

MORE [диск:][путь]имя_файла MORE < [диск:][путь]имя_файла имя_команды | MORE

MORE news.txt

TYPE news.txt | MORE Другой распространенной командой, использующей перенаправление ввода/вывода и… SORT [/R] [/+n] [[диск1:][путь1]файл1] [> [диск2:][путь2]файл2]

Условное выполнение и группировка команд

Используя символ амперсанда &, можно разделить несколько утилит в одной командной строке, при этом они будут выполняться друг за другом.… Символ ^ позволяет использовать командные символы как текст, то есть при этом… Например, если ввести в командной строке

Примеры команд для работы с файловой системой

Пути к объектам файловой системы

Например, имя C:123.txtзадает файл 123.txt в текущем каталоге на диске C:, имя C:123.txt - файл 123.txt в корневом каталоге на диске C:, имя… Существуют особые обозначения для текущего каталога и родительского каталога.… В именах файлов (но не дисков или каталогов) можно применять так называемые групповые символы или шаблоны: ?…

Команда CD

Текущий каталог можно изменить с помощью команды

CD [диск:][путь]

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

Команда COPY

COPY [/A|/B] источник [/A|/B] [+ источник [/A|/B] [+ ...]] [результат [/A|/B]] [/V][/Y|/–Y] Таблица 1. Параметры и ключи команды COPY Параметр Описание …  

Команда XCOPY

Синтаксис команды: XCOPY источник [результат] [ключи] Команда XCOPY имеет множество ключей, ниже дано описание некоторых из них.

Команда DIR

DIR [диск:][путь][имя_файла] [ключи], Параметр [диск:][путь] задает диск и каталог, содержимое которого нужно… Команда

Том в устройстве C имеет метку PHYS1_PART2

Содержимое папки C:aditor . <ПАПКА> 25.01.00 17:15 . .. <ПАПКА> 25.01.00 17:15 ..

Файлов 533 647 байт

Папок 143 261 696 байт свободно

С помощью ключей команды DIR можно задать различные режимы расположения, фильтрации и сортировки. Например, при использовании ключа /W перечень файлов выводится в широком формате с максимально возможным числом имен файлов или каталогов на каждой строке.

Например:

Том в устройстве C имеет метку PHYS1_PART2

Серийный номер тома: 366D-6107

Содержимое папки C:aditor

[.] [..] TEMPLT02.DAT UNINST1.000 HILITE.DAT

TEMPLT01.DAT UNINST0.000 TTABLE.DAT ADITOR.EXE README.TXT

ADITOR.HLP ТЕКСТО~1.TXT

Файлов 533 647 байт

Папок 143 257 600 байт свободно

Например, для вывода имен всех файлов в корневом каталоге диска C:, которые одновременно являются скрытыми и системными, можно задать команду DIR C: /A:HS а для вывода всех файлов, кроме скрытых - команду

Templt02.dat

UNINST1.000

Hilite.dat

Templt01.dat

UNINST0.000

Ttable.dat

Aditor.exe

Readme.txt

Aditor.hlp

Текстовый файл.txt

Команды MKDIR и RMDIR

Например: MKDIR "C:Примеры" RMDIR "C:Примеры"

Команда DEL

Удалить один или несколько файлов можно с помощью команды

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

Для удаления сразу нескольких файлов используются групповые знаки ? и *. Ключ /S позволяет удалить указанные файлы из всех подкаталогов, ключ /F – принудительно удалить файлы, доступные только для чтения, ключ /A[[:]атрибуты] – отбирать файлы для удаления по атрибутам (аналогично ключу /A[[:]атрибуты] в команде DIR ).

Команда REN

REN [диск:][путь][каталог1|файл1] [каталог2|файл2] Здесь параметр каталог1|файл1 определяет название каталога/файла, которое… Например, чтобы изменить у всех файлов с расширением txt в текущей каталога расширение на doc, нужно ввести такую…

Команда MOVE

MOVE [/Y|/–Y] [диск:][путь]имя_файла1[,...] результирующий_файл Синтаксис команды для переименования папки имеет вид: MOVE [/Y|/–Y] [диск:][путь]каталог1 каталог2

Командные файлы

Назначение

Кроме команд командные файлы содержат также некоторые дополнительные инструкции и ключевые слова, придающие командным файлам некоторое сходство с… Например, если записать в файл deltmp.bat следующие команды: C:

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

По умолчанию команды пакетного файла перед исполнением выводятся на экран. С помощью команды 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 сообщение

Например,

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

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

Для доступа из командного файла к параметрам командной строки применяются символы %0, %1, …, %9 или %*. При этом вместо %0 подставляется имя… Пример. Пусть имеется командный файл copier.batследующего содержания:

ECHO OFF

CLS

ECHO Файл %0 копирует каталог %1 в %2

XCOPY %1 %2 /S

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

copier.bat C:Programs D:Backup

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

Файл copier.bat копирует каталог C:Programs в D:Backup

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

При необходимости можно использовать более девяти параметров командной строки. Это достигается с помощью команды SHIFT, которая изменяет значения замещаемых параметров с %0 по %9, копируя каждый параметр в предыдущий, то есть значение %1 копируется в %0, значение %2 – в %1 и т.д. Замещаемому параметру %9 присваивается значение параметра, следующего в командной строке за старым значением %9. Если же такой параметр не задан, то новое значение %9 — пустая строка.

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

My.bat p1 p2 p3

При включении расширенной обработки команд SHIFT поддерживает ключ /n, задающий начало сдвига параметров с номера n, где n может быть числом от 0 до… Например, в следующей команде: SHIFT /2

Таблица 2. Операторы для заменяемых параметров

Операторы Описание
%~Fn Переменная %n расширяется до полного имени файла
%~Dn Из переменной %n выделяется только имя диска
%~Pn Из переменной %n выделяется только путь к файлу
%~Nn Из переменной %n выделяется только имя файла
%~Xn Из переменной %n выделяется расширение имени файла
%~Sn Значение операторов N и X для переменной %n изменяется так, что они работают с кратким именем файла
%~$PATH:n Проводится поиск по каталогам, заданным в переменной среды PATH, и переменная %n заменяется на полное имя первого найденного файла. Если переменная PATH не определена или в результате поиска не найден ни один файл, эта конструкция заменяется на пустую строку. Естественно, здесь переменную PATH можно заменить на любое другое допустимое значение

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

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

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

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

%~F1=C:TEXTРассказ.doc

%~D1=C:

%~P1=TEXT

%~N1=Рассказ

%~X1=.doc

%~DP1=C:TEXT

%~NX1=Рассказ.doc

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

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

Для получения значения определенной переменной среды нужно имя этой переменной заключить в символы %. Например:

ECHO OFF

CLS

REM Создание переменной MyVar

SET MyVar=Привет

REM Изменение переменной

SET MyVar=%MyVar%!

ECHO Значение переменной MyVar: %MyVar%

REM Удаление переменной MyVar

SET MyVar=

ECHO Значение переменной WinDir: %WinDir%

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

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

Значение переменной WinDir: C:WINDOWS

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

SET A=Раз SET B=Два SET C=%A%%B%

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

При включенной расширенной обработке команд (этот режим в Windows XP используется по умолчанию) имеется возможность рассматривать значения переменных среды как числа и производить с ними арифметические вычисления. Для этого используется команда SET с ключом /A.

Пример пакетного файла add.bat, складывающего два числа, заданных в качестве параметров командной строки, и выводящего полученную сумму на экран:

ECHO OFF

REM В переменной M будет храниться сумма

SET /A M=%1+%2

ECHO Сумма %1 и %2 равна %M%

REM Удалим переменную M

SET M=

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

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

Пусть есть командный файл 1.bat со следующим содержимым: SET a=1 ECHO a=%a%

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

Команду PAUSE обязательно нужно использовать при выполнении потенциально опасных действий (удаление файлов, форматирование дисков и т.п.). Например, ECHO Сейчас будут удалены все файлы в C:Мои документы!

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

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

ECHO OFF

CLS

REM Вывод списка log-файлов

DIR C:*.log

REM Передача выполнения файлу f.bat

F.bat

COPY A:*.* C:

PAUSE

Однако в этом случае после выполнения вызванного файла управление в вызывающий файл не передается, то есть в приведенном примере команда COPY A:*.* C:(и все следующие за ней команды) никогда не будет выполнена.

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

Например:

ECHO OFF

CLS

REM Вывод списка log-файлов

DIR C:*.log

REM Передача выполнения файлу f.bat

CALL f.bat

COPY A:*.* C:

PAUSE

В этом случае после завершения работы файла f.bat управление вернется в первоначальный файл на строку, следующую за командой CALL (в примере это команда COPY A:*.* C: ).

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

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

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

ECHO OFF

COPY %1 %2

GOTO Label1

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

:Label1

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

После того, как в этом файле выполнение дойдёт до команды GOTO Label1 его выполнение продолжается со строки REM Продолжение выполнения В команде перехода внутри файла GOTO можно задавать в качестве метки перехода… Также для перехода к метке внутри текущего командного файла кроме команды GOTO можно использовать и рассмотренную выше…

Копия-1

Копия-2

Копия-1

Таким образом, подобное использование команды CALL очень похоже на обычный вызов подпрограмм (процедур) в алгоритмических языках программирования.

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

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

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

IF [NOT] строка1==строка2 команда1 [ELSE команда2] (квадратные скобки указывают на необязательность заключенных в них параметров)… IF [/I] [NOT] строка1 оператор_сравнения строка2 команда

ECHO OFF

ECHO Выполняется файл: %0

ECHO.

ECHO Файл запущен со следующими параметрами...

REM Начало цикла

:BegLoop

IF -%1==- GOTO ExitLoop

ECHO %1

REM Сдвиг параметров

SHIFT

REM Переход на начало цикла

GOTO BegLoop

:ExitLoop

REM Выход из цикла

ECHO.

ECHO Все.

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

Primer.bat А Б В Г

то в результате выполнения на экран выведется следующая информация:

Выполняется файл: primer.bat

Файл запущен со следующими параметрами:

А

Б

В

Г

Все.

Рассмотрим теперь оператор IF в следующем виде:

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

Синтаксис и значение операторов_сравнения представлены в табл. 3.

Таблица 3. Операторы сравнения в IF

Оператор Значение
EQL Равно
NEQ Не равно
LSS Меньше
LEQ Меньше или равно
GTR Больше
GEQ Больше или равно

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

ECHO OFF

CLS

IF -%1 EQL –Вася ECHO Привет, Вася!

IF -%1 NEQ –Вася ECHO Привет, но Вы не Вася!

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

IF /I DOS==dos …

будет истинным.

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

IF [NOT] EXIST файл команда1 [ELSE команда2] Условие считается истинным, если указанный файл существует. Кавычки для имени… Пример командного файла, в котором с помощью такого варианта команды IF проверяется наличие файла, указанного в…

REM Вывод сообщения о найденном файле

ECHO Файл '%1' успешно найден.

GOTO :EOF

:NoFileSpecified

REM Файл запущен без параметров

ECHO В командной строке не указано имя файла.

GOTO :EOF

:FileNotExist

REM Параметр командной строки задан, но файл не найден

ECHO Файл '%1' не найден.

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

Аналогично файлам команда IF позволяет проверить наличие в системе определенной переменной среды:

IF DEFINED переменная команда1 [ELSE команда2]

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

@ECHO OFF

CLS

IF DEFINED MyVar GOTO :VarExists

ECHO Переменная MyVar не определена

GOTO :EOF

:VarExists

ECHO Переменная MyVar определена,

ECHO ее значение равно %MyVar%

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

IF [NOT] ERRORLEVEL число команда1 [ELSE команда2] Здесь условие считается истинным, если последняя запущенная команда или… Составим, например, командный файл, который бы копировал файл my.txt на диск C: без вывода на экран сообщений о…

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

IF CMDEXTVERSION число команда1 [ELSE команда2] Здесь условие CMDEXTVERSION применяется подобно условию ERRORLEVEL, но число…

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

2.9.1 Цикл FOR … IN … DO … Самый простой вариант синтаксиса команды FOR для командных файлов имеет… FOR %%переменная IN (множество)

Раз

Два

Три

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

@ECHO OFF

FOR %%i IN ("Раз,Два",Три) DO ECHO %%i

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

Раз,Два

Три

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

Замечание.

Чтобы избежать путаницы с параметрами командного файла %0 — %9, для переменных следует использовать любые символы кроме 0 – 9.

Параметр множество в команде FOR может также представлять одну или несколько групп файлов. Например, чтобы вывести в файл список всех файлов с расширениями txt и prn, находящихся в каталоге C:TEXT, без использования команды DIR, можно использовать командный файл следующего содержания:

@ECHO OFF

FOR %%f IN (C:TEXT*.txt C:TEXT*.prn) DO ECHO %%f >> list.txt

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

2.9.2 Цикл FOR /D … IN … DO …

Следующий вариант команды FOR реализуется с помощью ключа /D:

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

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

@ECHO OFF

CLS

FOR /D %%f IN (C:*.*) DO ECHO %%f

мы получим список всех каталогов на диске C:, например:

C:Arc

C:CYR

C:MSCAN

C:NC

C:Program Files

C:TEMP

C:TeX

C:WINNT

2.9.3 Цикл FOR /R … IN … DO …

С помощью ключа /R можно задать рекурсию в команде FOR:

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

DO команда [параметры]

В этом случае заданная команда выполняется для каталога [диск:]путь, а также для всех подкаталогов этого пути. Если после ключа R не указано имя каталога, то выполнение команды начинается с текущего каталога. Например, для распечатки всех файлов с расширением txt в текущем каталоге и всех его подкаталогах можно использовать следующий пакетный файл:

@ECHO OFF

CLS

FOR /R %%f IN (*.txt) DO PRINT %%f

Если вместо набора указана только точка (.), то команда проверяет все подкаталоги текущего каталога. Например, если мы находимся в каталоге C:TEXT с двумя подкаталогами BOOKS и ARTICLES, то в результате выполнения файла:

@ECHO OFF

CLS

FOR /R %%f IN (.) DO ECHO %%f

на экран выведутся три строки:

C:TEXT.

C:TEXTBOOKS.

C:TEXTARTICLES.

2.9.4 Цикл FOR /L … IN … DO …

Ключ /L позволяет реализовать с помощью команды FOR арифметический цикл, в этом случае синтаксис имеет следующий: вид:

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

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

@ECHO OFF

CLS

FOR /L %%f IN (1,1,5) DO ECHO %%f

переменная цикла %%f пробежит значения от 1 до 5, и на экране напечатаются пять чисел:

Числа, получаемые в результате выполнения цикла FOR /L, можно использовать в арифметических вычислениях. Рассмотрим командный файл my.bat следующего содержания:

@ECHO OFF

CLS

FOR /L %%f IN (1,1,5) DO CALL :2 %%f

GOTO :EOF

:2

SET /A M=10*%1

ECHO 10*%1=%M%

В третьей строке в цикле происходит вызов нового контекста файла my.bat с текущим значением переменной цикла %%f в качестве параметра командной строки, причем управление передается на метку :2 (см. описание CALL в разделе "Изменения в командах перехода"). В шестой строке переменная цикла умножается на десять, и результат записывается в переменную M. Таким образом, в результате выполнения этого файла выведется следующая информация:

10*1=10

10*2=20

10*3=30

10*4=40

10*5=50

2.9.5 Цикл FOR /F … IN … DO …

Самые мощные возможности (и одновременно самый запутанный синтаксис) имеет команда: FOR с ключом /F:

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

DO команда [параметры]

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

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

Таблица 4. Ключи в команде FOR /F

Ключ Описание
EOL=C Определение символа комментариев в начале строки (допускается задание только одного символа)
SKIP=N Число пропускаемых при обработке строк в начале файла
DELIMS=XXX Определение набора разделителей для замены заданных по умолчанию пробела и знака табуляции
TOKENS=X,Y,M-N Определение номеров подстрок, выделяемых из каждой строки файла и передаваемых для выполнения в тело цикла

 

При использовании ключа TOKENS=X,Y,M-N создаются дополнительные переменные. Формат M-N представляет собой диапазон подстрок с номерами от M до N. Если последний символ в строке TOKENS= является звездочкой, то создается дополнительная переменная, значением которой будет весь текст, оставшийся в строке после обработки последней подстроки.

Применение этой команды на примере пакетного файла parser.bat, который производит разбор файла myfile.txt:

@ECHO OFF

IF NOT EXIST myfile.txt GOTO :NoFile

FOR /F "EOL=; TOKENS=2,3* DELIMS=, " %%i IN

(myfile.txt) DO @ECHO %%i %%j %%k

GOTO :EOF

:NoFile

ECHO Не найден файл myfile.txt!

Здесь во второй строке производится проверка наличия файла myfile.txt; в случае отсутствия этого файла выводится предупреждающее сообщение. Команда FOR в третьей строке обрабатывает файл myfile.txt следующим образом:

Пропускаются все строки, которые начинаются с символа точки с запятой ( EOL=; ).

Вторая и третья подстроки из каждой строки передаются в тело цикла, причем подстроки разделяются пробелами (по умолчанию) и/или запятыми ( DELIMS=,).

В теле цикла переменная %%i используется для второй подстроки, %%j — для третьей, а %%k получает все оставшиеся подстроки после третьей.

В нашем примере переменная %%i явно описана в инструкции FOR, а переменные %%j и %%k описываются неявно с помощью ключа TOKENS=. Например, если в файле myfile.txt были записаны следующие три строки:

ААА ББББ ВВВВ,ГГГГГ ДДДД

ЕЕЕЕЕ,ЖЖЖЖ ЗЗЗЗ

;КККК ЛЛЛЛЛ МММММ

то в результате выполнения пакетного файла parser.bat на экран выведется следующее:

ББББ ВВВВ ГГГГГ ДДДД

ЖЖЖЖ ЗЗЗЗ

Ключ TOKENS= позволяет извлечь из одной строки файла до 26 подстрок, поэтому запрещено использовать имена переменных, начинающиеся не с букв… Команда FOR /F также позволяет обработать отдельную строку. Для этого следует… @ECHO OFF

ББББ ВВВВ ГГГГГ ДДДД

@ECHO OFF SET M=ААА ББББ ВВВВ,ГГГГГ ДДДД FOR /F "EOL=; TOKENS=2,3* DELIMS=,

CLS

ECHO Имена переменных среды:

ECHO.

FOR /F "DELIMS==" %%i IN ('SET') DO ECHO %%i

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

В цикле FOR допускается применение тех же синтаксических конструкций (операторов), что и для заменяемых параметров (табл. 5).

Таблица 5. Операторы для переменных команды FOR

Операторы Описание
%~Fi Переменная %i расширяется до полного имени файла
%~Di Из переменной %i выделяется только имя диска
%~Pi Из переменной %i выделяется только путь к файлу
%~Ni Из переменной %i выделяется только имя файла
%~Xi Из переменной %i выделяется расширение имени файла
%~Si Значение операторов N и X для переменной %i изменяется так, что они работают с кратким именем файла

 

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

Например, если мы находимся в каталоге C:Program FilesFar и запустим командный файл следующего содержания:

@ECHO OFF

CLS

FOR %%i IN (*.txt) DO ECHO %%~Fi

то на экран выведутся полные имена всех файлов

с расширением txt:

C:Program FilesFarContacts.txt

C:Program FilesFarFarFAQ.txt

C:Program FilesFarFar_Site.txt

C:Program FilesFarLicense.txt

C:Program FilesFarLicense.xUSSR.txt

C:Program FilesFarReadMe.txt

C:Program FilesFarregister.txt

C:Program FilesFarWhatsNew.txt

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

SET a= FOR %%i IN (Раз,Два,Три) DO SET a=%a%%%i ECHO a=%a%

SETLOCAL ENABLEDELAYEDEXPANSION

SET a=

FOR %%i IN (Раз,Два,Три) DO SET a=!a!%%i

ECHO a=%a%

В этом случае на экран будет выведена строка "a=РазДваТри".

Задание на лабораторную работу

Запустить командный интерпретатор cmd

2. В корневом каталоге диска C: создать каталог Work1 и подчиненный ему каталог DOK1. (рис. 1)

2. В корневом каталоге диска C: создать каталог Work2 и подчиненный ему каталог DOK2. (рис. 1)

3. В каталоге Work1 создать файл proba1.txt, содержащий произвольную информацию, а в каталоге Work2 — файл proba2.txt, содержащий произвольную информацию. (рис. 1).

Получить информацию о каталогах и файлах.

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

7. Скопировать файл proba2.txt в каталог Work1 под именем proba3.txt. 8. Создать командный файл run.bat, в каталоге Work1, выполняющий следующие… 1. просмотр оглавления каталога DOK2

Удалить все созданные каталоги и файлы.

1. Создать каталог Рабочий и перейти в него. 2. Создать подкаталоги: Архив, Тексты, Таблицы, Базы. 3. В каталоге Тексты создать подкаталог Проба.

– Конец работы –

Используемые теги: Перенаправление, ввода/вывода, конвейеризация, композиция, команд0.056

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Перенаправление ввода/вывода и конвейеризация композиция команд

Что будем делать с полученным материалом:

Если этот материал оказался полезным для Вас, Вы можете сохранить его на свою страничку в социальных сетях:

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

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

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

Принцип контраста как основа формирования музыкальной композиции Концерта для смешанного хора "Лебедушка" В. Салманова
Воспитанник М. Ф. Гнесина и М. О. Штейнберга, он отличался высочайшим профессионализмом, верностью лучшим традициям отечественной музыки и… И во всем этом биение нашего времени, чуткое ухо, любовный и меткий глаз… Как пишет В. Рубцова, "…его завораживала гармоническая ясность пушкинского стиха, одинаково притягивал светлый…

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

Система команд 8-разрядных RISC микроконтроллеров семейства AVR
На сайте allrefs.net читайте: "Система команд 8-разрядных RISC микроконтроллеров семейства AVR"

Использование оператора IF – THEN в командах
На сайте allrefs.net читайте: "Использование оператора IF – THEN в командах"

Использование выражений в построении команд
На сайте allrefs.net читайте: "Использование выражений в построении команд"

СОЦИОЛОГИЯ УПРАВЛЕНИЯ: От группы к команде
На сайте allrefs.net читайте: "СОЦИОЛОГИЯ УПРАВЛЕНИЯ: От группы к команде"

менеджмент анимационных команд
Новый европейский рынок предполагал введение единых требований и процедур, способных обеспечить эффективный обмен товарами и рабочей силой между… Вырабатываются единые стандарты, подходы к технологическим регламентам,… Повсеместное внедрение систем качества на основе стандартов ИСО 9000, ЕN 29000 и маркировка продукции знаком СЕ…

Особенности композиции романа А. С. Пушкина «Евгений Онегин»
Роман начинается внутренним монологом героя, из которого мы можем составить себе представление о «молодом повесе», «наследнике всех своих родных»,… Волна и камень, Стихи и проза, лед и пламень Не столь различны меж собой.… Письмо Татьяны тронуло Онегина, но при встрече он говорит, что «не создан для блаженства» семейного счастья, не хочет…

0.024
Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • По категориям
  • По работам
  • Особенности композиции стихотворения А. Блока «Незнакомка» Эстетствующий поэт почти с отвращением описывает обстановку, на фоне которой позже появится его героиня. По вечерам над ресторанами Горячий воздух… Девичий стан, шелками схваченный, В туманном движется окне. И медленно, пройдя… Блок горд, что ему открылся этот мир, скрытый от глаз обывателя.Глухие тайны, мне поручены, Мне чье-то солнце вручено,…
  • особенности сюжета и композиции произведения Мертвые души Но когда эти черты, присущие разным жанрам, смешиваются между собой, создают своеобразное неповторимое сочетание - такое произведение поначалу… Одни нашли его издевательским. Реакционная критика просто глумилась над… Но почему же именно этот жанр Гоголь избрал для воплощения своих идей? Неужели поэма настолько вместительна, чтобы…
  • Модифицированные эпоксидные композиции пониженной горючести Электромагнитное излучение состоит из частиц-фотонов, не имеющих массы покоя.Энергия фотона E определяется частотой излучения n и равна E = hn .… Поэтому регистрируемые частоты образуют также дискретное множество, и их можно… Такой единицей является обратная длина волны 1/l. Её называют волновым числом и обозначают . Вся накопленная до…
  • Команда перемещения данных микропроцессора К580 Способ задания операнда в команде называется методом адресации. Команды микропроцессора записываются в 8-разрядные ячейки памяти и могут иметь в… Методы адресации Прямая адресация - это такой метод адресации, когда каждая… Таким образом, данные непосредственно содержатся в самой команде. Косвенная адресация позволяет компактно…
  • Изучение конструкций и команд языка PL/SQL На сайте allrefs.net читайте: "Изучение конструкций и команд языка PL/SQL"