
СТАТЬИ / Компьютер / Командная строка / Консоль Windows |
21.06.16 12:45 |
Получить доступ к некоторым скрытым возможностям Windows и автоматизировать многие процессы можно при помощи командной строки. Windows сегодня – полноценная операционная система, к которой написаны тысячи программ для решения любых задач. Однако, пользователи со стажем не раз сталкивались с ситуациями, когда некоторые программы во время запуска или работы вдруг открывали чёрное окошко с кучей строк текста... Это – Командная строка, которая, не имея собственного графического интерфейса, позволяет выполнять целый ряд полезных функций. И в сегодняшней статье я бы как раз хотел уделить внимание этому довольно интересному инструменту, который может пригодиться каждому пользователю! Немного истории и теорииА началось всё с того, что в далёком уже 1981 году компания Microsoft создала свою версию операционной системы DOS для IBM-совместимых ПК: DOS – это аббревиатура от "Disk Operation System", то есть, по-нашему "Дисковая операционная система". Она позволяла оперировать файлами и каталогами на жёстких дисках и съёмных носителях, вроде дискет, а также являлась прослойкой для запуска различных сторонних прикладных программ. По этому же принципу работает и Командная строка Windows, которая с появлением нормального графического интерфейса, по сути, осталась для обеспечения обратной совместимости с некоторым ПО под DOS и работы пакетных файлов команд (о них немного ниже). В отличие от консоли Linux, функционал Командной строки значительно более скуден. С целью его увеличения в своё время создавались различные дополнительные терминалы, вроде интерпретатора команд COMMAND.COM или современной PowerShell. Однако, именно CMD.EXE до сих пор остаётся самым популярным инструментом, поскольку "умеет" не так уж и мало:
Естественно, полноценно программировать с использованием Командной строки не получится. Однако, создавать несложные сценарии автоматизации рутинных задач с последующим их выполнением, например, посредством штатного Планировщика, думаю, при желании сможет каждый! Вызов командной строкиДля того, чтобы получить доступ к Командной строке, её нужно вначале запустить. Сделать это в Windows можно несколькими способами. Способ 1. ВручнуюПоскольку Командная строка является обычным исполняемым файлом, который находится в папке Windows\System32 на основном разделе диска с системой, то его можно запустить вручную, открыв вышеназванную папку и запустив файл cmd.exe: Способ 2. Меню "Пуск"В версиях Windows с меню "Пуск" (кроме "Восьмёрки") командную строку можно запустить, пройдя по пути "Пуск" – "Все программы" – "Стандартные": Способ 3. Строка "Выполнить"Самым же быстрым и удобным, на мой взгляд, является запуск Командной строки посредством системного диалога "Выполнить". Вызвать его можно из меню "Пуск" или сочетанием клавиш WIN+R. Вводим в строке команду CMD или CMD.EXE, жмём Enter и получаем нужный результат: Принцип работыИтак, перед нами открылась вожделенная Командная строка, но что с ней делать? Для начала рекомендую ознакомиться со списком доступных команд. Для его получения достаточно ввести слово "help" (без кавычек) и нажать Enter: В зависимости от версии Windows мы получим примерно до сотни различных команд с кратким описанием. Разделить их можно на несколько групп:
Каждая команда может иметь один или несколько дополнительных параметров, а также использовать для своей работы так называемые ключи, которые являются модификаторами поведения команды. Чтобы получить справку по ним достаточно ввести название нужной Вам команды, через пробел без кавычек написать "/?" (или слово "help") и нажать Enter: Справка по встроенным командам обычно довольно полная и включает в себя:
В принципе, обладая информацией о сфере и особенностях применения той или иной команды, Вы вполне можете сформулировать и выполнить то, что Вам требуется. Единственный нюанс – в общих примерах часто параметры и ключи берутся в квадратные скобки ([]). Это делается только для наглядности и на практике их нужно опускать. BAT-файлыЕсли Вы разобрались с основными принципами работы Командной строки, то уже вполне можете выполнять в ней нужные Вам единичные задачи. Однако, основная прелесть любой консоли в возможности автоматизации повторяющихся задач путём последовательного выполнения пакета команд. Чтобы выполнять за один раз несколько команд нам и нужны BAT-файлы. По сути, пакетные (или batch) файлы являются простыми текстовыми файлами с наборами консольных команд. Единственное отличие от обычных TXT-файлов – расширение, которое вручную меняется на .bat: Ещё один нюанс! Если в именах файлов или папок, с которыми Вы собираетесь работать, имеются русские буквы, то стандартно сохранённый Блокнотом "батник" работать не будет! Чтобы использовать кириллицу Вам нужно сохранять пакетный файл в кодировке DOS (она же OEM 866), в которой по умолчанию работает Командная строка. Для этого лучше воспользоваться альтернативными текстовыми редакторами, вроде PSPad или RJ TextED. На худой конец можно использовать и встроенный в Windows WordPad. Скопируйте в него текст своего BAT-файла из Блокнота и сохраните, как обычный Текстовый документ MS-DOS с расширением .bat: Операторы Командной строки, переменные и вспомогательные символыВот Вам простой пример фрагмента 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 Из комментариев, думаю, всё понятно: здесь мы рассматриваем создание переменных и работу с ними, а также внешними текстовыми файлами. Внимание стоит обратить на следующие моменты:
В сценариях Командной строки также очень часто можно встретить операторы, которые позволяют группировать команды, передавать потоки данных между ними, а также совершать простейшие условные переходы. Рассмотрим ещё один пример: :: Отключаем вывод строк команд @echo off :: Позволяем пользователю самостоятельно задать переменную "ext" с расширением файла set /p ext=Введите расширение для поиска: :: Получаем список файлов в корне диска D и ищем нужное расширение. В зависимости от результата выводим сообщение dir D:\ | find "%ext%" && echo Файлы найдены || (echo Файлы не обнаружены & echo Попробуйте ввести другие данные в следующий раз) :: Останавливаем выполнение, чтобы увидеть результат pause Этот сценарий позволяет найти и вывести список всех файлов, в именах которых встречается заданный пользователем (переменная ext) набор символов. При этом за счёт использования простых условных операторов мы будем получать разный текст с пояснениями. Рассмотрим эти операторы:
В примере показан довольно примитивный вариант условий. На практике иногда лучше использовать связку команд IF и ELSE, как это делается в нормальных языках программирования. Но, тем не менее, такие сокращённые варианты записи тоже частенько встречаются. Консольные программыШтатных команд в консоли Windows не так уж мало, но они покрывают далеко не все нужды, которые могут возникнуть у пользователя. С этой целью Командная строка поддерживает выполнение сторонних программ, которые не имеют собственного интерфейса. Причём такие программы могут как входить в состав самой Windows, так и быть скачанными пользователем Большинство штатных консольных программ лежит в той же папке, что и исполняемый файл CMD.EXE. Принцип работы с ними, по сути, аналогичен работе с обычными командами: достаточно ввести имя исполняемого файла вместо команды и дополнить его нужными параметрами с ключами: О большинстве из консольных утилит можно найти информацию на специализированных сайтах, вроде, на http://cmdhelp.ru/ или же при помощи получения по ним справки прямо в Командной строке. Для запуска же сторонних программ нужно указывать не только их название, но и полный путь к исполняемому файлу. Для примера возьмём утилиту уменьшения размера картинок в формате JPG под названием Jpegtran: Как видим, кроме того, что указывается полный путь к исполняемому файлу, работа со сторонними консольными утилитами, в принципе, ничем не отличается от работы с встроенными в систему. Хотя, данное неудобство можно нивелировать, задав стартовой папкой консоли папку с нужной программой командой CD. ВыводыКомандная строка, конечно, не панацея, но довольно мощное средство в руках знающего человека. Она может служить как во благо, автоматизируя рутинные действия и ремонтируя системные сбои, так и во вред, удаляя нужную информацию и портя данные (многие вирусы использовали как раз BAT-файлы для нанесения ущерба компьютеру). В любом случае, каждый продвинутый пользователь или тот, кто хочет им стать, должен хотя бы в общих чертах разбираться с консолью Windows и знать основные команды и принципы их применения. Поэтому желаю Вам успешного изучения и применения на практике новых знаний! P.S. Разрешается свободно копировать и цитировать данную статью при условии указания открытой активной ссылки на источник и сохранения авторства Руслана Тертышного. |