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

UptoLike

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

6
в существующие дескрипторы используется амперсанд (&), затем номер требуе-
мого дескриптора (например, &номер_дескриптора). Например, для перенаправ-
ления дескриптора 2 (STDERR) в дескриптор 1 (STDOUT) введите: 1>&2.
Например, чтобы сообщения об ошибках и результаты работы скрипта вы-
водились в файл, подаем команду:
myScript.bat >res.txt 2>&1
Здесь сначала стандартный вывод перенаправляется в файл, а затем деск-
риптор потока STDERR перенаправляется туда же, куда перенаправлен STDOUT.
Если же поменять местами операции перенаправления:
myScript.bat 2>&1 1>res.txt
то STDERR будет сначала перенаправлен на поток STDOUT (консоль), а уже за-
тем STDOUT перенаправляется в файл. В результате полезный вывод будет на-
правлен в файл, а ошибкина экран.
В операторах перенаправления вместо имени файла можно указывать стан-
дартные обозначения устройств компьютера. В Windows поддерживаются сле-
дующие имена устройств: PRN (принтер),LPT1–LPT3 (соответствующие парал-
лельные порты), AUX (устройство, присоединяемое к последовательному порту
1), COM1–COM3 (соответствующие последовательные порты), CON (терминал:
при вводе это клавиатура, при выводе - монитор), NUL (пустое устройство, все
операции ввода/вывода для него игнорируются).
Примеры.
Вывод в файл папки.txt списка всех папок из текущей папки
dir /A:D /B >папки.txt
Вывод справки по команде tasklist в файл tasklist _hlp.txt
tasklist /? > tasklist_hlp.txt
Дописать в файл check_connect.txt результат проверки IP-соединения с уз-
лом www.volpi.ru
ping www.volpi.ru >>check_connect.txt
Перенаправить сообщения об ошибках работы команды в файл error.txt
taskkill /s comp1 /pid 1022 2>error.txt
Сменить дату на 1.1.2013
echo 1.1.2013 | date
В последнем примере использован оператор конвейеризации |. С его помо-
щью можно сообщения, выводимые первой командой, передавать в качестве
входных данных для второй команды. В данном случае в качестве входных дан-
ных для команды date, ожидающей на входе значение новой даты в формате
дд.мм.гггг, использован вывод первой команды (echo), которая выводит на экран
заданную строку-параметр. Если заранее записать новую дату в файл date.txt, то
изменение даты возможно и такой командой:
date < date.txt
Оператор конвейера наиболее эффективен в комбинации с фильтрующими
командами. Команды-фильтры дают возможность сортировать, просматривать и
отбирать часть выходной информации других команд. Фильтры делят, переупо-
рядочивают или выделяют отдельные части из проходящей через них информа-
ции. В приведенной ниже таблице перечислены команды-фильтры, доступные в
в существующие дескрипторы используется амперсанд (&), затем номер требуе-
мого дескриптора (например, &номер_дескриптора). Например, для перенаправ-
ления дескриптора 2 (STDERR) в дескриптор 1 (STDOUT) введите: 1>&2.
      Например, чтобы сообщения об ошибках и результаты работы скрипта вы-
водились в файл, подаем команду:
      myScript.bat >res.txt 2>&1
     Здесь сначала стандартный вывод перенаправляется в файл, а затем деск-
риптор потока STDERR перенаправляется туда же, куда перенаправлен STDOUT.
Если же поменять местами операции перенаправления:
      myScript.bat 2>&1 1>res.txt
то STDERR будет сначала перенаправлен на поток STDOUT (консоль), а уже за-
тем STDOUT перенаправляется в файл. В результате полезный вывод будет на-
правлен в файл, а ошибки – на экран.
      В операторах перенаправления вместо имени файла можно указывать стан-
дартные обозначения устройств компьютера. В Windows поддерживаются сле-
дующие имена устройств: PRN (принтер),LPT1–LPT3 (соответствующие парал-
лельные порты), AUX (устройство, присоединяемое к последовательному порту
1), COM1–COM3 (соответствующие последовательные порты), CON (терминал:
при вводе это клавиатура, при выводе - монитор), NUL (пустое устройство, все
операции ввода/вывода для него игнорируются).
      Примеры.
      Вывод в файл папки.txt списка всех папок из текущей папки
     dir /A:D /B >папки.txt
     Вывод справки по команде tasklist в файл tasklist _hlp.txt
     tasklist /? > tasklist_hlp.txt
     Дописать в файл check_connect.txt результат проверки IP-соединения с уз-
лом www.volpi.ru
     ping www.volpi.ru >>check_connect.txt
     Перенаправить сообщения об ошибках работы команды в файл error.txt
     taskkill /s comp1 /pid 1022 2>error.txt
     Сменить дату на 1.1.2013
     echo 1.1.2013 | date
     В последнем примере использован оператор конвейеризации |. С его помо-
щью можно сообщения, выводимые первой командой, передавать в качестве
входных данных для второй команды. В данном случае в качестве входных дан-
ных для команды date, ожидающей на входе значение новой даты в формате
дд.мм.гггг, использован вывод первой команды (echo), которая выводит на экран
заданную строку-параметр. Если заранее записать новую дату в файл date.txt, то
изменение даты возможно и такой командой:
     date < date.txt
     Оператор конвейера наиболее эффективен в комбинации с фильтрующими
командами. Команды-фильтры дают возможность сортировать, просматривать и
отбирать часть выходной информации других команд. Фильтры делят, переупо-
рядочивают или выделяют отдельные части из проходящей через них информа-
ции. В приведенной ниже таблице перечислены команды-фильтры, доступные в
                                            6