[Из песочницы] Тонкости работы в командной строке Windows
Недавно я вырос из лютого эникея в очень большой компании, до скромного сисадмина надзирающего за сетью в 10 ПК. И, как очень ленивый сисадмин, столкнулся с задачами по автоматизации своей деятельности. Полгода назад я еще не знал, что в командной строке Windows есть конвейеры. Это стало первым шокирующим открытием. И я пошел дальше, и выяснилось, что там, где я раньше писал утилитки на C#, Delphi или громоздкие скрипты с вложенными циклами, можно было обойтись парой команд forfiles или robocopy.Не буду рассказывать о банальностях, типа о перечислении файлов и папок клавишей Tab. Под хабракатом расскажу о том, что может быть полезно начинающим админам и эникеям.Горячие клавиши Начнем с горячих клавиш, ведь сначала необходимо изучить, что нам может дать рабочая среда.F1 — В консоли эта клавиша работает в точности как и стрелка вправо, т.е. выводит по одному символу из последней введенной (либо выбранной в истории) команды.F2 + <символ> — Выводит последнюю введенную команду до указанного символа. Например, если последняя введенная вами команда выглядела вот так:
ping 192.168.25.1 то после нажатия комбинации клавиш F2 + 5 вы получите: ping 192.168.2 F3 — Выводит последнюю, и только последнюю, в истории команду целиком.F5 — Выводит последние введенные команды по порядку, также как и стрелка вверх.F6 — Вставляет символ EOF на текущую позицию командной строки, что аналогично нажатию комбинации Ctrl + Z.F7 — Диалоговое окно, содержащее историю команд.Alt + F7 — Очищает историю команд.<символ(ы)> + F8 — Перебирает команды, которые начинаются с символов уже введенных в командную строку.Если перед нажатием F8 ничего не вводить, то эта клавиша будет работать как и стрелка вверх, но с небольшим отличием — перебор строк будет осуществляться циклично, т.е. после первой команды из списка будет выведена последняя.F9 + <число> — Вставляет команду из истории под соответствующим номером. К примеру, в ситуации приведенной на скрине выше при нажатии комбинации F9 + 4 в консоли появится: ipconfig Операторы командной строки Я, давным-давно, когда был маленький, даже не представлял как можно работать в консоли без графического интерфейса. Ведь вывод команд порой занимает десятки страниц, а если надо выбрать оттуда какие-то данные, то и постраничный вывод не спасет. Но однажды я поставил на старый комп FreeBSD, открыл хандбук и просто голова кругом пошла от открывшихся возможностей. Там можно перенаправить вывод команды на вход другой команды и это называется конвейером.Оператором конвейера в *nix и cmd, является символ вертикальной черты.
| Например, вывод всех текстовых файлов в текущей папке покажет команда dir | find ».txt» Оператор объединения команд
& Пример: Команда1 & Команда2 — сначала выполнятся Команда1, а уже потом Команда2Оператор И
&& Пример: Команда1 && Команда2 — Команда2 будет выполняться только в том случае, если произошло успешное выполнение Команды1Оператор ИЛИ
|| Пример: Команда1 || Команда2 — Команда2 будет выполняться только в том случае, если Команда1 не смогла выполниться.Для группирования команд используются круглые скобки, примеры:
(Команда1 & Команда2) && Команда3 — Если Команды1 и Команды2, выполнятся успешно, произойдет выполнение Команды3. (Команда1 & Команда2) || Команда3 — Если Команды1 и Команды2, не выполнятся, произойдет выполнение Команды3. Спасибо за внимание! Жду критики и предложений…
P.S. Другие тонкости командной строки Windows, уже неоднократно освещались на Хабре. И не вижу смысла копи-пастить.