Командная строка

Рисование в командной строкеКомандная строка – компонент Windows, не имеющий графического интерфейса, но позволяющий выполнять ряд команд в консольном режиме.

Исторически Командная строка появилась как рудимент операционной системы MS-DOS, которая тоже не имела графического интерфейса. Сегодня терминал существует в виде отдельного исполняемого файла CMD.EXE и позволяет запускать как ряд встроенных в систему команд, так и сторонние приложения без графического интерфейса.

Если Вы хотите узнать, как пользоваться Командной строкой Windows и для чего она нужна, читайте статью ниже.

Консоль Windows

Командная строка Консоль Windows
Язык:Русский
Формат:
Обновлено:2016-05-28
Автор:





Консоль Windows

Получить доступ к некоторым скрытым возможностям Windows и автоматизировать многие процессы можно при помощи командной строки.

Windows сегодня – полноценная операционная система, к которой написаны тысячи программ для решения любых задач. Однако, пользователи со стажем не раз сталкивались с ситуациями, когда некоторые программы во время запуска или работы вдруг открывали чёрное окошко с кучей строк текста...

Это – Командная строка, которая, не имея собственного графического интерфейса, позволяет выполнять целый ряд полезных функций. И в сегодняшней статье я бы как раз хотел уделить внимание этому довольно интересному инструменту, который может пригодиться каждому пользователю!

Немного истории и теории

А началось всё с того, что в далёком уже 1981 году компания Microsoft создала свою версию операционной системы DOS для IBM-совместимых ПК:

MS-DOS 1.0

DOS – это аббревиатура от "Disk Operation System", то есть, по-нашему "Дисковая операционная система". Она позволяла оперировать файлами и каталогами на жёстких дисках и съёмных носителях, вроде дискет, а также являлась прослойкой для запуска различных сторонних прикладных программ.

По этому же принципу работает и Командная строка Windows, которая с появлением нормального графического интерфейса, по сути, осталась для обеспечения обратной совместимости с некоторым ПО под DOS и работы пакетных файлов команд (о них немного ниже).

Командная строка Windows 8

В отличие от консоли Linux, функционал Командной строки значительно более скуден. С целью его увеличения в своё время создавались различные дополнительные терминалы, вроде интерпретатора команд COMMAND.COM или современной PowerShell. Однако, именно CMD.EXE до сих пор остаётся самым популярным инструментом, поскольку "умеет" не так уж и мало:

  • работать с файлами и папками (перемещать, копировать, удалять и, частично, создавать);
  • управлять некоторыми функциями системы (запускать/отключать процессы, выполнять перезагрузку);
  • отображать некоторые сведения о системе (информацию о сети, дисках);
  • запускать всевозможные консольные утилиты и сценарии.

Естественно, полноценно программировать с использованием Командной строки не получится. Однако, создавать несложные сценарии автоматизации рутинных задач с последующим их выполнением, например, посредством штатного Планировщика, думаю, при желании сможет каждый!


Вызов командной строки

Для того, чтобы получить доступ к Командной строке, её нужно вначале запустить. Сделать это в Windows можно несколькими способами.

Способ 1. Вручную

Поскольку Командная строка является обычным исполняемым файлом, который находится в папке Windows\System32 на основном разделе диска с системой, то его можно запустить вручную, открыв вышеназванную папку и запустив файл cmd.exe:

Ручной запуск командной строки

Способ 2. Меню "Пуск"

В версиях Windows с меню "Пуск" (кроме "Восьмёрки") командную строку можно запустить, пройдя по пути "Пуск" – "Все программы" – "Стандартные":

РЗапуск командной строки из меню Пуск

Способ 3. Строка "Выполнить"

Самым же быстрым и удобным, на мой взгляд, является запуск Командной строки посредством системного диалога "Выполнить". Вызвать его можно из меню "Пуск" или сочетанием клавиш WIN+R. Вводим в строке команду CMD или CMD.EXE, жмём Enter и получаем нужный результат:

Запуск командной строки из диалога Выполнить

Принцип работы

Итак, перед нами открылась вожделенная Командная строка, но что с ней делать? Для начала рекомендую ознакомиться со списком доступных команд. Для его получения достаточно ввести слово "help" (без кавычек) и нажать Enter:

Команды консоли Windows

В зависимости от версии Windows мы получим примерно до сотни различных команд с кратким описанием. Разделить их можно на несколько групп:

  1. Команды для работы с файлами и папками, вроде копирования, анализа и удаления (ATTRIB, COPY, REM, DEL и др.).
  2. Команды для работы с текстовыми данными для чтения текстовых файлов, вывода на экран их содержимого, обработки строк и их последующего сохранения (TYPE, FIND, COMP...).
  3. Команды управления операционной системой, например, функция печати (PRINT), форматирования носителя (FORMAT), анализа диска (CHKDSK) и т.п.
  4. Команды для работы с приложениями: START для запуска или TASKKILL для закрытия активного процесса.
  5. Служебные команды для использования их в скриптах автоматизации (IF, GOTO, AT, CALL, FOR и т.д.).
  6. Справочные команды для получения информации о системе или других командах (HELP, VER, ECHO...).
  7. Вспомогательные команды: CLS для очистки экрана консоли, COLOR для настройки цвета текста и фона Командной строки, TITLE для установки заголовка окна текущей сессии терминала и т.п.

Каждая команда может иметь один или несколько дополнительных параметров, а также использовать для своей работы так называемые ключи, которые являются модификаторами поведения команды. Чтобы получить справку по ним достаточно ввести название нужной Вам команды, через пробел без кавычек написать "/?" (или слово "help") и нажать Enter:

CHKDSK HELP

Справка по встроенным командам обычно довольно полная и включает в себя:

  • описание команды;
  • общий пример вида команды со всеми параметрами и ключами;
  • описание всех ключей;
  • рекомендации по использованию (не всегда);
  • конкретные примеры использования (не всегда).

В принципе, обладая информацией о сфере и особенностях применения той или иной команды, Вы вполне можете сформулировать и выполнить то, что Вам требуется. Единственный нюанс – в общих примерах часто параметры и ключи берутся в квадратные скобки ([]). Это делается только для наглядности и на практике их нужно опускать.

BAT-файлы

Если Вы разобрались с основными принципами работы Командной строки, то уже вполне можете выполнять в ней нужные Вам единичные задачи. Однако, основная прелесть любой консоли в возможности автоматизации повторяющихся задач путём последовательного выполнения пакета команд.

Чтобы выполнять за один раз несколько команд нам и нужны BAT-файлы. По сути, пакетные (или batch) файлы являются простыми текстовыми файлами с наборами консольных команд. Единственное отличие от обычных TXT-файлов – расширение, которое вручную меняется на .bat:

Сохранение BAT-файла

Ещё один нюанс! Если в именах файлов или папок, с которыми Вы собираетесь работать, имеются русские буквы, то стандартно сохранённый Блокнотом "батник" работать не будет! Чтобы использовать кириллицу Вам нужно сохранять пакетный файл в кодировке DOS (она же OEM 866), в которой по умолчанию работает Командная строка.

Для этого лучше воспользоваться альтернативными текстовыми редакторами, вроде PSPad или RJ TextED. На худой конец можно использовать и встроенный в Windows WordPad. Скопируйте в него текст своего BAT-файла из Блокнота и сохраните, как обычный Текстовый документ MS-DOS с расширением .bat:

Сохранение BAT-файла в WordPad

Операторы Командной строки, переменные и вспомогательные символы

Вот Вам простой пример фрагмента BAT-файла, который лежит у меня в Планировщике и складывает загруженные из Интернета картинки в отдельную папку:

@echo off

:: Переносим изображения в папку "Картинки"

move C:\Users\Че\Downloads\*.jpg C:\Users\Че\Downloads\Картинки

move C:\Users\Че\Downloads\*.png C:\Users\Че\Downloads\Картинки

move C:\Users\Че\Downloads\*.gif C:\Users\Че\Downloads\Картинки

move C:\Users\Че\Downloads\*.psd C:\Users\Че\Downloads\Картинки

Основной функционал реализуется за счёт команды MOVE, в которой мы указывает имя исходного файла и путь к папке, в которую его нужно перенести. Однако, обратите внимание, что имя нам заранее неизвестно, поэтому вместо него мы используем специальный подстановочный символ – "*".

Кроме этого символа в приведённом выше коде мы можем видеть значок "собачки", а также двойное двоеточие. Первая конструкция позволяет отключить вывод сообщений на экран, а вторая, как нетрудно догадаться, реализует функционал комментирования.

Дело в том, что помимо команд, их параметров и ключей Командная строка оперирует ещё рядом специфических функций, которые характерны для полноценных языков программирования. К таким функциям можно отнести операторы, переменные и различные спецсимволы (вроде той же звёздочки и комментариев).

Рассмотрим следующий пример:

:: Отключаем вывод строк команд

@echo off

:: Создаём переменную с именем "var1"

set var1=5

:: Включаем арифметику (ключ /а) и вычисляем значение второй переменной

set /a var2=var1+var1

:: Перенаправляем вывод (знак ">") второй переменной в файл var.txt

echo %var2% > D:\var.txt

:: Считываем содержимое файла (знак "<") в новую строковую (ключ /p) переменную

set /p var3=<D:\var.txt

:: И выводим на экран

echo %var3%

:: Останавливаем выполнение, чтобы увидеть результат

pause

:: Результатом выполнения сценария будет вывод в Командной строке числа 10

Из комментариев, думаю, всё понятно: здесь мы рассматриваем создание переменных и работу с ними, а также внешними текстовыми файлами. Внимание стоит обратить на следующие моменты:

  1. Команда SET по умолчанию создаёт, по сути, строковую переменную, но имеет два ключа: /a и /p. Первый ключ указывает, что в переменной находится число и активирует арифметические действия, второй же нужен для получения строковых данных из внешних файлов.
  2. Командная строка поддерживает следующие арифметические действия:
  • "+" - сложение;
  • "-" - вычитание;
  • "*" - умножение;
  • "/" - деление;
  • "%" - деление по модулю;
  • "+=" - сложение с присваиванием переменной нового результата (например, va1+=1 равнозначно записи var1=var1+1) (аналогично присваивание можно применить к любой вышеназванной операции).
  1. Для перенаправления данных используются операторы: > (вывод с перезаписью), < (ввод с заменой данных), >> (дописывание в файл), << (ввод с дописыванием данных к переменной).
  2. Для вывода переменных через команды ECHO, TYPE и т.п. они должны быть ограничены символами процента (%). Если символы не поставить, то будет выведено только название переменной, а не её значение.
  3. Если требуется остановить выполнение сценария для отображения результатов можно использовать команду PAUSE. Если этого не сделать, то по окончании выполнения сценария окно Командной строки просто закроется.

В сценариях Командной строки также очень часто можно встретить операторы, которые позволяют группировать команды, передавать потоки данных между ними, а также совершать простейшие условные переходы. Рассмотрим ещё один пример:

:: Отключаем вывод строк команд

@echo off

:: Позволяем пользователю самостоятельно задать переменную "ext" с расширением файла

set /p ext=Введите расширение для поиска:

:: Получаем список файлов в корне диска D и ищем нужное расширение. В зависимости от результата выводим сообщение

dir D:\ | find "%ext%" && echo Файлы найдены || (echo Файлы не обнаружены & echo Попробуйте ввести другие данные в следующий раз)

:: Останавливаем выполнение, чтобы увидеть результат

pause

Этот сценарий позволяет найти и вывести список всех файлов, в именах которых встречается заданный пользователем (переменная ext) набор символов. При этом за счёт использования простых условных операторов мы будем получать разный текст с пояснениями. Рассмотрим эти операторы:

  1. "|" - оператор конвейеризации. Позволяет передать результат выполнения одной команды для обработки другой без промежуточного вывода (в примере передаём список всех файлов на анализ команде FIND).
  2. "&&" - оператор выполнения команды при успешном завершении предыдущей. Выполняет следующую после него команду только, если предыдущая была успешно завершена (в примере выводим сообщение "Файлы найдены", если есть хотя бы один файл, соответствующий условию поиска).
  3. "||" - оператор выполнения команды при невыполнении предыдущей. Запускает команду, если предыдущая не была выполнена (в примере выводим сообщение "Файлы не обнаружены", если нет ни одного файла, соответствующего параметрам поиска).
  4. "&" - оператор последовательности выполнения команды. Запускает команду следующей вне зависимости от того была ли успешно выполнена предыдущая (в примере позволяет вывести дополнительное сообщение "Попробуйте ввести другие данные в следующий раз" после появления "Файлы не обнаружены").
  5. "()" - оператор группирования команд. Позволяет группировать команды, которые должны выполняться при тех или иных условиях (в примере создаёт группу сообщений, которые выводятся, если поиск завершился неудачей).

В примере показан довольно примитивный вариант условий. На практике иногда лучше использовать связку команд IF и ELSE, как это делается в нормальных языках программирования. Но, тем не менее, такие сокращённые варианты записи тоже частенько встречаются.

Консольные программы

Штатных команд в консоли Windows не так уж мало, но они покрывают далеко не все нужды, которые могут возникнуть у пользователя. С этой целью Командная строка поддерживает выполнение сторонних программ, которые не имеют собственного интерфейса. Причём такие программы могут как входить в состав самой Windows, так и быть скачанными пользователем

Большинство штатных консольных программ лежит в той же папке, что и исполняемый файл CMD.EXE. Принцип работы с ними, по сути, аналогичен работе с обычными командами: достаточно ввести имя исполняемого файла вместо команды и дополнить его нужными параметрами с ключами:

Справка по TRACERT

О большинстве из консольных утилит можно найти информацию на специализированных сайтах, вроде, на http://cmdhelp.ru/ или же при помощи получения по ним справки прямо в Командной строке.

Для запуска же сторонних программ нужно указывать не только их название, но и полный путь к исполняемому файлу. Для примера возьмём утилиту уменьшения размера картинок в формате JPG под названием Jpegtran:

Справка по Jpegtran

Как видим, кроме того, что указывается полный путь к исполняемому файлу, работа со сторонними консольными утилитами, в принципе, ничем не отличается от работы с встроенными в систему. Хотя, данное неудобство можно нивелировать, задав стартовой папкой консоли папку с нужной программой командой CD.

Выводы

Командная строка, конечно, не панацея, но довольно мощное средство в руках знающего человека. Она может служить как во благо, автоматизируя рутинные действия и ремонтируя системные сбои, так и во вред, удаляя нужную информацию и портя данные (многие вирусы использовали как раз BAT-файлы для нанесения ущерба компьютеру).

В любом случае, каждый продвинутый пользователь или тот, кто хочет им стать, должен хотя бы в общих чертах разбираться с консолью Windows и знать основные команды и принципы их применения. Поэтому желаю Вам успешного изучения и применения на практике новых знаний!

P.S. Разрешается свободно копировать и цитировать данную статью при условии указания открытой активной ссылки на источник и сохранения авторства Руслана Тертышного.







Полезный совет:


Система проверки ошибок от Mistakes.ru