Командные файлы операционной системы MS Windows. Лясин Д.Н - 21 стр.

UptoLike

Составители: 

21
:NoSuchFile
rem Файл не найден. Выводим сообщение и создаем пустой файл
echo Файл '%1' не найден.
copy nul %1
Наконец, последний вариант условной команды:
if cmdextversion число команда [else команда]
ставит выполнение команды в зависимость от внутреннего номера версии теку-
щей реализации расширенной обработки команд Номер версии будет увеличи-
ваться на единицу при каждом добавлении существенных возможностей расши-
ренной обработки команд. Таким образом можно адаптировать работу командно-
го файла к возможностям установленной на компьютере командной оболочки.
Если расширенная обработка команд отключена, условие cmdextversion не будет
истинно.
Организация циклов в командных файлах
Циклическое повторение некоторого фрагмента командного файла можно
организовать с использованием пары команд if и goto. Но гораздо эффективнее
использовать для этих целей команду for. Команда for обеспечивает выполнение
заданной команды (группы команд) для всех элементов некоторого множества
(например, для всех файлов в папке). Обобщенный синтаксис команды for:
for {%переменная|%%переменная} in (множество) do команда
[Параметры]
Чтобы скопировать содержимое всех файлов, имеющих разрешение .log или
.txt в текущем каталоге в один файл all.txt с помощью заменяемой переменной
%%f, можно использовать следующую команду:
for %%f in (*.log *.txt) do type %%f >>all.txt
В приведенном примере каждый файл с расширением .log или .txt в теку-
щем каталоге будет подставляться вместо переменной %%f, пока не будут обра-
ботаны все файлы с таким расширением. Чтобы использовать данную команду
непосредственно в командной строке, а не в командном файле, следует заменить
все вхождения %%f на %f. В противном случае переменная игнорируется, и ото-
бражается сообщение об ошибке.
В качестве элементов множества перебираемых элементов могут быть
представлены любые строки, в этом случае переменная цикла по очереди примет
значение каждой из этих строк. Например, так мы можем создать 5 папок с пре-
допределенными названиями в текущей папке:
for %%f in (help work out bin “my files”) do md %%f
Существуют дополнительные синтаксические конструкции использования
команды for. Одна из них реализуется, если указать в команде for ключ /D:
for /D %переменная in (набор) do команда [параметры]
       :NoSuchFile
       rem Файл не найден. Выводим сообщение и создаем пустой файл
       echo Файл '%1' не найден.
       copy nul %1

      Наконец, последний вариант условной команды:
     if cmdextversion число команда [else команда]
ставит выполнение команды в зависимость от внутреннего номера версии теку-
щей реализации расширенной обработки команд Номер версии будет увеличи-
ваться на единицу при каждом добавлении существенных возможностей расши-
ренной обработки команд. Таким образом можно адаптировать работу командно-
го файла к возможностям установленной на компьютере командной оболочки.
Если расширенная обработка команд отключена, условие cmdextversion не будет
истинно.

      Организация циклов в командных файлах
      Циклическое повторение некоторого фрагмента командного файла можно
организовать с использованием пары команд if и goto. Но гораздо эффективнее
использовать для этих целей команду for. Команда for обеспечивает выполнение
заданной команды (группы команд) для всех элементов некоторого множества
(например, для всех файлов в папке). Обобщенный синтаксис команды for:
for {%переменная|%%переменная} in (множество) do команда
                                          [Параметры]

        Чтобы скопировать содержимое всех файлов, имеющих разрешение .log или
.txt в текущем каталоге в один файл all.txt с помощью заменяемой переменной
%%f, можно использовать следующую команду:
     for %%f in (*.log *.txt) do type %%f >>all.txt
      В приведенном примере каждый файл с расширением .log или .txt в теку-
щем каталоге будет подставляться вместо переменной %%f, пока не будут обра-
ботаны все файлы с таким расширением. Чтобы использовать данную команду
непосредственно в командной строке, а не в командном файле, следует заменить
все вхождения %%f на %f. В противном случае переменная игнорируется, и ото-
бражается сообщение об ошибке.
       В качестве элементов множества перебираемых элементов могут быть
представлены любые строки, в этом случае переменная цикла по очереди примет
значение каждой из этих строк. Например, так мы можем создать 5 папок с пре-
допределенными названиями в текущей папке:
     for %%f in (help work out bin “my files”) do md %%f
      Существуют дополнительные синтаксические конструкции использования
команды for. Одна из них реализуется, если указать в команде for ключ /D:
      for /D    %переменная in     (набор)     do команда    [параметры]


                                        21