Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
метод1 спо.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
226.72 Кб
Скачать

8. Циклическое выполнение команд в командном файле

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

FOR %%переменная IN (набор) DO команда

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

набор - одно или несколько символьных слов или спецификаций файлов. Спецификация файла имеет вид

[дисковод:][путь\]имя_файла.

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

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

Ниже в качестве примера приводится текст командного файла CP.BAT, предназначенного для копирования всех файлов типов .C, .PAS и .BAK из текущего каталога в другой, определяемый значением первого параметра %1:

@echo off

rem Копирование файлов типов .C, .PAS, .BAK

rem из текущего каталога в другой

for %%E in (C PAS BAK) do copy *.%%E %1

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

CP С:\

9. Сдвиг параметров при обработке командного файла

Команда SHIFT предоставляет возможность обращения более, чемк 9 заменяемым параметрам при обработке командного файла. Этодостигается путем изменения нумерации параметров командной строки.

Например, для

%0 = с.bat

%1 = bar

%2 = name

%3... %9 не заняты.

ействие команды SHIFT приведет к следующим изменениям:

%0 = bar

%1 = name

%2 ... %9 не заняты.

Если в командной строке было введено больше 9 параметров, тодля использования в командном файле тех параметров, которыепоявляются после девятого (%9), необходимо поочередно их сдвигатьпо команде SHIFT в направлении %9.

10. Установка значения переменной окружения

Команда SET позволяет присвоить некоторое значение переменной окружения. Формат команды:

SET переменная=значение

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

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

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

SET CMD=%1

строка %CMD% в командном файле будет замещена на %1.

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

Для удаления переменной окружения (и соответственно ее значения) после команды SET следует ввести имя переменной и только знак равенства, например:

SET CMD=

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

@echo off

rem Многокpатное выполнение команды с pазличными паpаметpами

if -%1 ==- goto inctruct

if -%2 ==- goto inctruct

set cmd=%1

:docmd

echo %cmd% %2

%cmd% %2

shift

if not -%2 ==- goto docmd

goto end

:inctruct

echoОшибка: пpопущеныпаpаметpы

echoИспользуйте:

echo REPEAT командапаpаметp [паpаметр ...]

:end

set cmd=

Для запуска этого файла следует набрать его имя REPEAT, азатем команду и список параметров, например:

REPEAT DIR *.EXE *.COM

По этой команде сначала будет выведен список файлов срасширением.EXE, а затем список файлов с расширением.COM.

Файл REPEAT начинает свою работу с запоминания именикоманды во временной переменной CMD. Затем управлениепередается организованному в файле циклу, в результатевыполнения которого имя команды и первое значение параметраотображается на экране, после чего сформированная команднаястрока поступает в систему для выполнения. Далее при помощиоператора SHIFT осуществляется сдвиг значений параметров влевона одну позицию. При следующем выполнении тела цикла значениевторого параметра команды замещает значение первого. Командныйфайл прекращает свою работу, достигнув конца списка значенийпараметров. Если набрать слово REPEAT без списка параметров, тона экран будет выдана краткая инструкция для пользователя.