Предыдущие статьи были посвящены основам работы и синтаксису командной строки Windows.
Перейдем к операторам перенаправления ввода-вывода, каналам и объединению команд в цепочки.
Операторы перенаправления ввода-вывода
Как правило, под устройством ввода в командной строке подразумевается клавиатура, а устройством вывода – монитор. Однако операторы перенаправления ввода-вывода позволяют заменить их другими устройствами или файлами.
> - оператор перенаправления вывода, который позволяет записывать выходные данные в файл или передавать их на указанное устройство. При этом старые данные (если речь идет о файле) будут автоматически перезаписаны.
Например, если последовательно выполнить команды:
ping -n 5 ya.ru > c:\ping.txt
ping -n 10 ya.ru > c:\ping.txt
То файле на выходе будут содержаться только результаты выполнения второй команды.
>> - оператор перенаправления вывода, при котором новые данные дописываются в конец файла, не заменяя собой старые.
В качестве примера сохраним в файл info.txt имя компьютера и учетной записи пользователя последовательным вводом команд:
hostname > c:\info.txt
echo %username% >> c:\info.txt
В файле info.txt сохранятся результаты вывода обеих команд.
< - оператор перенаправления ввода, который позволяет считывать данные с указанного устройства или файла.
Убедимся в этом, создав файл host.txt, содержащий строку ping ya.ru. А затем направим содержимое файла в качестве ввода для командной строки:
Cmd < c:\host.txt
Каналы
Выходные данные одной команды могут передаваться в качестве вводных данных для другой. Такая процедура называется "канал".
| - оператор, который позволяет считывать и передавать выходные данные от одной команды на вход другой команде.
Например, чтобы получить из вывода команды ipconfig /all только строку с адресом DHCP-сервера, а затем сохранить ее в файл dhcp.txt, можно воспользоваться каналом и фильтром find:
ipconfig /all | find "DHCP-сервер" > c:\dchp.txt
В файл запишется следующая информация:
В командной строке Windows существует 3 команды-фильтра:
Find - поиск указанных символов в файлах или выводе команды.
More - отображение содержимого файла или вывода команды в одном окне командной строки.
Sort - сортировка содержимого файла или вывода команды в алфавитном порядке.
Объединение команд в цепочку
В командной строке Windows можно объединять команды в цепочки, и запускать их последовательно в зависимости от результатов выполнения. Для этого используются символы условной обработки:
& - используется для разделения нескольких команд в одной командной строке. При этом следующая команда выполняется независимо от результата выполнения предыдущей. Например:
ping yandex.ru & ping ya.ru
Обе команды выполнились успешно. И даже если же для первой указать несуществующий ресурс:
ping яндекс.ру & ping ya.ru
Ничего не изменится. Вторая команда все равно выполнится.
&& - запускает команду после символа && только при условии успешного выполнения предыдущей команды. Рассмотрим отличия:
ping yandex.ru && ping ya.ru
Поскольку первая команда отработала успешно, общий результат выполнения аналогичен примеру номер один. Однако, если первая команда завершится ошибкой:
ping яндекс.ру && ping ya.ru
Вторая команда выполнена не будет.
|| - выполняет команду, стоящую после символа ||, при условии невыполнения предыдущей команды. Проверим:
ping yandex.ru || ping ya.ru
Первая команда отработала успешно, поэтому вторая не стала выполняться. В обратном случае:
ping яндекс.ру || ping ya.ru
Вторая команда будет выполнена.
До продвинутого владения командной строкой Windows осталось совсем немного. Заключительная статья будет посвящена использованию дескрипторов.
Поэтому подписывайтесь на канал и следите за новинками!