Составители:
22
Если параметр множество содержит подстановочные знаки (* и ?), коман-
да, указанная в параметре команда, выполняется для каждого каталога, совпа-
дающего с параметром множество. Скажем, выполнив следующий командный
файл:
for /D %%f in (d:\work\h*.*) do attrib +h %%f.
мы установим атрибут «Скрытый» для всех папок, начинающихся с символа h, в
папке d:\work.
С помощью ключа /R можно задать рекурсию в команде for:
for /R [[диск:] путь] %переменная in (набор) do
команда [параметры]
Команда с ключом /R проходит по дереву каталогов с корнем в [диск:]путь,
выполняя инструкцию for для каждого каталога в дереве. Если после ключа /R не
задан каталог, предполагается текущий каталог. Если параметр множество зада-
но одной точкой (.), то команда просто перечислит каталоги в дереве.
for /R d:\ %%f in (.) do echo %%f
Для формирования списка всех файлов с расширением doc в заданном ката-
логе и всех его подкаталогах можно использовать следующую команду в пакет-
ном файле:
for /R d:\docs %%f in (*.doc) do echo %%f >> docfiles.lst
Ключ /L позволяет реализовать с помощью команды for арифметический
цикл, когда переменная цикла получает ряд целочисленных значений:
for /L {%% | %}переменная in (НачальноеЗначение#, шаг#,
КонечноеЗначение#) do команда [Параметры]
Цикл выполняет команду для каждого значения переменной цикла. Пере-
менная цикла первоначально принимает значение НачальноеЗначение# и далее на
каждом шаге изменяется на величину шаг#. Когда переменная итерации превысит
параметр КонечноеЗначение#, командная оболочка покидает цикл. Также можно
использовать отрицательный параметр для перемещения в диапазоне убывающих
значений. Например, (1,1,4) создает последовательность «1 2 3 4», а (5,-2,1) созда-
ет последовательность «5 3 1».
Например, в результате выполнения следующего фрагмента командного
файла в файл testconnect.log будет помещен результат проверки доступности ком-
пьютеров с адресами в диапазоне 192.168.0.(1-254). Цикл обеспечивает перебор
последней цифры адреса.
echo %date% %time%>>testconnect.log
FOR /L %%f IN (1,1,254) DO (ping -n 3 192.168.0.%%f
if errorlevel 1 echo Компьютер 192.168.0.%%f не отвечает >>
testconnect.log)
Числа, помещаемые в переменную цикла for /L, можно использовать в
арифметических вычислениях. Рассмотрим командный файл my.bat следующего
содержания:
@echo off
Если параметр множество содержит подстановочные знаки (* и ?), коман- да, указанная в параметре команда, выполняется для каждого каталога, совпа- дающего с параметром множество. Скажем, выполнив следующий командный файл: for /D %%f in (d:\work\h*.*) do attrib +h %%f. мы установим атрибут «Скрытый» для всех папок, начинающихся с символа h, в папке d:\work. С помощью ключа /R можно задать рекурсию в команде for: for /R [[диск:] путь] %переменная in (набор) do команда [параметры] Команда с ключом /R проходит по дереву каталогов с корнем в [диск:]путь, выполняя инструкцию for для каждого каталога в дереве. Если после ключа /R не задан каталог, предполагается текущий каталог. Если параметр множество зада- но одной точкой (.), то команда просто перечислит каталоги в дереве. for /R d:\ %%f in (.) do echo %%f Для формирования списка всех файлов с расширением doc в заданном ката- логе и всех его подкаталогах можно использовать следующую команду в пакет- ном файле: for /R d:\docs %%f in (*.doc) do echo %%f >> docfiles.lst Ключ /L позволяет реализовать с помощью команды for арифметический цикл, когда переменная цикла получает ряд целочисленных значений: for /L {%% | %}переменная in (НачальноеЗначение#, шаг#, КонечноеЗначение#) do команда [Параметры] Цикл выполняет команду для каждого значения переменной цикла. Пере- менная цикла первоначально принимает значение НачальноеЗначение# и далее на каждом шаге изменяется на величину шаг#. Когда переменная итерации превысит параметр КонечноеЗначение#, командная оболочка покидает цикл. Также можно использовать отрицательный параметр для перемещения в диапазоне убывающих значений. Например, (1,1,4) создает последовательность «1 2 3 4», а (5,-2,1) созда- ет последовательность «5 3 1». Например, в результате выполнения следующего фрагмента командного файла в файл testconnect.log будет помещен результат проверки доступности ком- пьютеров с адресами в диапазоне 192.168.0.(1-254). Цикл обеспечивает перебор последней цифры адреса. echo %date% %time%>>testconnect.log FOR /L %%f IN (1,1,254) DO (ping -n 3 192.168.0.%%f if errorlevel 1 echo Компьютер 192.168.0.%%f не отвечает >> testconnect.log) Числа, помещаемые в переменную цикла for /L, можно использовать в арифметических вычислениях. Рассмотрим командный файл my.bat следующего содержания: @echo off 22
Страницы
- « первая
- ‹ предыдущая
- …
- 20
- 21
- 22
- 23
- 24
- …
- следующая ›
- последняя »