9 простых способов как открыть командную строку в windows 7-10

Создание и обработка команд в VSPackage. Vsct файлы

Для создания и управления интегрируемыми IDE командами в VSPackage используются таблицы команд (Visual Studio Command Table, vsct файлы). Таблицы команд — это текстовые конфигурационные файлы в формате XML, компилируемые VSCT-компилятором в бинарные cto-файлы (command table output). CTO файлы включаются затем в качестве ресурса в финальную сборку модуля-расширения IDE. С помощью VCST команды могут быть назначены на пункты главного меню IDE или кнопки панелей инструментов. Поддержка VSCT файлов доступна начиная с Visual Studio 2005, в предыдущих версиях IDE для описания команд использовались CTC (command table compiler) файлы, в рамках данной статьи они рассматриваться не будут.


Каждой команде в vsct файле присваивается уникальный идентификатор — CommandID, имя и группа, определяется сочетание для быстрого вызова. С помощью различных флагов задаётся её внешний вид в интерфейсе (в меню или на панели инструментов), определяются параметры её видимости и т.д.

Рассмотрим базовую структуру VSCT файла. Корневой элемент таблицы команд CommandTable должен содержать под-узел Commands, в котором будут определены все пользовательские команды, группы, меню, панели инструментов и т.д. Узел Commands должен также иметь атрибут Package со значением, соответствующим идентификатору разрабатываемого пакета расширения. Под-узел корневого узла Symbols должен содержать определения для всех используемых в VSCT файле идентификаторов. Под-узел корневого узла KeyBindings содержит задаваемые по умолчания сочетания для быстрого вызова команд.

Элемент Buttons задаёт непосредственно сами IDE команды, задавая их внешний вид и привязывая их к группам команд.

Элемент Menus описывает структуру UI элементов главного меню и панели инструментов, и связывает их с группами команд элемента Groups. Группа команд, связанная с элементом Menu, будет отображена на заданном здесь меню или панели инструментов.

Элемент Groups формирует группы пользовательских команд среды.

Для добавления vsct файла в MSBuild проект VSPackage необходимо сначала вставить следующий узел для вызова VSCT компилятора в csproj файл (в автогенерируемом проекте SDK шаблона VSPackage vsct файл будет уже добавлен в проект):

И затем указать на него с помощью атрибута ProvideMenuResource у вашего наследника класса Package:

Приведём пример назначения обработчика на команду меню (команда должна быть определена в vsct файле заранее):

Для получения аргументов команды во время обработки её вызова можно преобразовать получаемое обработчиком значение EventArgs в OleMenuCmdEventArgs:

Использование команд


Любая IDE команда, независимо от формы её представления (или отсутствия такового) в интерфейсе IDE, может быть исполнена напрямую через окна Command Window и Immediate Window, а также с помощью аргумента командной строки devenv.exe /command при запуске приложения из консоли.

Полное имя команды формируется в соответствии с её принадлежностью к какой-либо функциональной группе, например команды пункта главного меню среды File. Её полное имя можно посмотреть в диалоге Keyboard, Environment страницы настроек Options. Диалог Tools -> Customize -> Commands позволяет посмотреть зарегистрированные в среде команды, отсортированные по группам и способам отображения в интерфейсе (меню, панели инструментов), а также редактировать их, удалять или добавлять новые команды.

Команды могут принимать дополнительные аргументы, передаваемые через пробел. Приведём пример вызова стандартной системной команды меню File -> New -> File, с передачей ей дополнительных параметров, через окно среды Command Window:

Синтаксис написания команд подчиняется следующим правилам:

  • Имя команды и её аргументы разделяются пробелом
  • Содержащие пробелы значения аргументов оборачиваются в кавычки
  • Знак вставки (^) используется для экранирования символов
  • Односимвольные сокращения имён аргументов можно сочетать, например /case (/c) и /word (/w) могут быть записаны как /cw

При использовании параметра запуска command, имя команды вместе со всеми её аргументами следует обернуть в двойные кавычки:

Для быстрого вызова команде может быть назначен псевдоним с помощью команды alias:

Команды, добавляемые в главное меню IDE модулем-расширением PVS-Studio, могут также быть использованы и через вызов /command, в частности, например, для решения задачи интеграции статического анализа в автоматизированный сборочный процесс проекта. Здесь заметим, что непосредственно сам статический анализатор PVS-Studio.exe представляет собой как раз консольное приложение, работающее по схожему с компилятором принципу, т.е. он получает на вход путь до файла с исходным кодом и параметры компиляции этого файла, выдавая результаты своего анализа в потоки stdout/strerr. Понятно и то, что анализатор может быть относительно легко интегрирован непосредственно в сборочную систему (например, основанную на том же MSBuild, NMake или даже GNU Make) на одном уровне с вызовом C/C++ компилятора. Подобная система уже сама по определению будет реализовывать обход всех исходных файлов с предоставлением параметров компиляции для каждого из них, что фактически позволяет подменять (или скорее дополнять) вызов компилятора вызовом анализатора. И хотя такой режим работы полностью поддерживается анализатором PVS-Studio.exe, подобная интеграция анализа в сборочный процесс требует достаточно близкого знакомства непосредственно со сборочной системой, ровно как и собственно возможности для такой её модификации, что может быть как затруднительно, так и вовсе не доступно.

Поэтому для интеграции статического анализа PVS-Studio в автоматизированный сборочный процесс, можно на более высоком уровне (т.е. уже непосредственно на уровне сервера непрерывной интеграции) использовать вызов команд модуля-расширения в Visual Studio через /command, например, команды проверки PVS-Studio.CheckSolution. Конечно, такой вариант возможен только при использовании для сборки нативных проектных решений Visual C++ (vcproj/vcxproj).

В случае запуска Visual Studio из командной строки с аргументом /command, команда будет выполнена сразу после загрузки среды. При этом среда разработки будет запущена как обычное UI приложение, соответственно, и без перенаправления в запускающую её консоль стандартных потоков ввода/вывода. Стоит заметить, что в общем случае Visual Studio является именно UI средой разработки и не предназначена для работы в режиме командной строки. Так, например, для компиляции проектов в системах автоматизации сборок рекомендуется напрямую вызывать сборочную утилиту Microsoft MSBuild, поддерживающую все стандартные типы проектов Visual Studio.

Команды для получения системной информации:

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

Концептуальный пример

Этот пример показывает структуру паттерна Команда, а именно — из каких классов он состоит, какие роли эти классы выполняют и как они взаимодействуют друг с другом.

main.cc: Пример структуры паттерна

/**
 * Интерфейс Команды объявляет метод для выполнения команд.
 */
class Command {
 public:
  virtual ~Command() {
  }
  virtual void Execute() const = 0;
};
/**
 * Некоторые команды способны выполнять простые операции самостоятельно.
 */
class SimpleCommand : public Command {
 private:
  std::string pay_load_;

 public:
  explicit SimpleCommand(std::string pay_load) : pay_load_(pay_load) {
  }
  void Execute() const override {
    std::cout << "SimpleCommand: See, I can do simple things like printing (" << this->pay_load_ << ")\n";
  }
};

/**
 * Классы Получателей содержат некую важную бизнес-логику. Они умеют выполнять
 * все виды операций, связанных с выполнением запроса. Фактически, любой класс
 * может выступать Получателем.
 */
class Receiver {
 public:
  void DoSomething(const std::string &a) {
    std::cout << "Receiver: Working on (" << a << ".)\n";
  }
  void DoSomethingElse(const std::string &b) {
    std::cout << "Receiver: Also working on (" << b << ".)\n";
  }
};

/**
 * Но есть и команды, которые делегируют более сложные операции другим объектам,
 * называемым «получателями».
 */
class ComplexCommand : public Command {
  /**
   * @var Receiver
   */
 private:
  Receiver *receiver_;
  /**
   * Данные о контексте, необходимые для запуска методов получателя.
   */
  std::string a_;
  std::string b_;
  /**
   * Сложные команды могут принимать один или несколько объектов-получателей
   * вместе с любыми данными о контексте через конструктор.
   */
 public:
  ComplexCommand(Receiver *receiver, std::string a, std::string b) : receiver_(receiver), a_(a), b_(b) {
  }
  /**
   * Команды могут делегировать выполнение любым методам получателя.
   */
  void Execute() const override {
    std::cout << "ComplexCommand: Complex stuff should be done by a receiver object.\n";
    this->receiver_->DoSomething(this->a_);
    this->receiver_->DoSomethingElse(this->b_);
  }
};

/**
 * Отправитель связан с одной или несколькими командами. Он отправляет запрос
 * команде.
 */
class Invoker {
  /**
   * @var Command
   */
 private:
  Command *on_start_;
  /**
   * @var Command
   */
  Command *on_finish_;
  /**
   * Инициализация команд.
   */
 public:
  ~Invoker() {
    delete on_start_;
    delete on_finish_;
  }

  void SetOnStart(Command *command) {
    this->on_start_ = command;
  }
  void SetOnFinish(Command *command) {
    this->on_finish_ = command;
  }
  /**
   * Отправитель не зависит от классов конкретных команд и получателей.
   * Отправитель передаёт запрос получателю косвенно, выполняя команду.
   */
  void DoSomethingImportant() {
    std::cout << "Invoker: Does anybody want something done before I begin?\n";
    if (this->on_start_) {
      this->on_start_->Execute();
    }
    std::cout << "Invoker: ...doing something really important...\n";
    std::cout << "Invoker: Does anybody want something done after I finish?\n";
    if (this->on_finish_) {
      this->on_finish_->Execute();
    }
  }
};
/**
 * Клиентский код может параметризовать отправителя любыми командами.
 */

int main() {
  Invoker *invoker = new Invoker;
  invoker->SetOnStart(new SimpleCommand("Say Hi!"));
  Receiver *receiver = new Receiver;
  invoker->SetOnFinish(new ComplexCommand(receiver, "Send email", "Save report"));
  invoker->DoSomethingImportant();

  delete invoker;
  delete receiver;

  return 0;
}

Output.txt: Результат выполнения

Invoker: Does anybody want something done before I begin?
SimpleCommand: See, I can do simple things like printing (Say Hi!)
Invoker: ...doing something really important...
Invoker: Does anybody want something done after I finish?
ComplexCommand: Complex stuff should be done by a receiver object.
Receiver: Working on (Send email.)
Receiver: Also working on (Save report.)

Запуск командной строки от имени администратора


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

Меню «Пуск»

В меню «Пуск» по умолчанию размещены все системные приложения, включая «Командную строку». Чтобы попасть в утилиту с правами администратора, необходимо:

  1. Развернуть меню.
  2. В перечне приложений найти и открыть директорию «Служебные — Windows».
  3. Нажать по иконке «Командная строка» правой кнопкой мыши (ПКМ) и навести курсор на пункт «Дополнительно».
  4. Выбрать опцию «Запуск от имени администратора».

На экране появится диалоговое окно, в котором необходимо дать подтверждение выполняемым действием. После нажатия кнопки Да на отобразится окно консоли.

Системный поиск

Похожий алгоритм запуска «Командной строки» и при использовании системного поиска. Для выполнения поставленной задачи необходимо:

  1. Активировать поисковое поле, нажав по соответствующей иконке с левой части «Панели задач».
  2. Ввести запрос, содержащий название искомого элемента.
  3. В результатах выдачи нажать по значку консоли ПКМ и выбрать запуск с повышенными привилегиями.

После подтверждения выполняемых действий появится окно «Командной строки», готовое к вводу и обработке пользовательских запросов.

Комбинация Win + X

Контекстное меню начального экрана снабжено наиболее популярными опциями операционной системы, включая возможность открыть «Командную строку» в Windows 10. Вызвать необходимый элемент можно двумя способами:

  1. Кликнуть правой кнопкой мыши по кнопке «Пуск».
  2. Нажать сочетание горячих клавиш Win + X.

В нижнем левом углу отобразится контекстно меню, в котором потребуется щелкнуть по пункту «Командная строка (администратор)». Выполнение этих действий приведет к запуску консоли с правами суперпользователя.

Исполняемый файл в проводнике

Каждое приложение в операционной системе имеет исполняемый файл на жестком диске, посредством которого осуществляется запуск

С помощью файлового менеджера «Проводник» у пользователя есть возможность открыть «Командную строку», важно знать, где находится файл программы


Пошаговое руководство:

  1. Включить «Проводник», кликнув по соответствующей иконке, расположенной в левой части «Панели задач».
  2. Перейти в раздел «Этот компьютер», кликнув по одноименному пункту с левой стороны интерфейса.
  3. Открыть диск C.
  4. Проследовать в директорию Windows.
  1. Зайти в каталог System32.
  1. Среди списка файлов найти cmd, нажать ПКМ.
  2. Выбрать опцию «Запуск от имени администратора».

Выполняемые действия позволяют вывести на экран окно консоли готовое к работе.

II. Создайте партию и запись в переменной окружения PATH:

  1. Создайте пакет с этими макросами и сохраните его в известном месте (например, c: \ apps \ mycmd.bat).
  2. Перейдите на панель управления> Система> Расширенные конфигурации> Расширенный> Переменные среды.
  3. В пользовательских или системных записях найдите переменную с именем PATH. Дважды щелкните по нему и, в конце, вставьте «;» и путь к вашей BAT (например, «c: \ apps \» => «previous_string; c: \ apps \»), затем Ok и Ok.
  4. Поэтому, когда вы используете cmd (или в BAT-файле), просто введите имя BAT в созданном пути (например, «c: \ apps»), чтобы запустить ваши команды (например, введите «myapps» для запуска этой замены команд).

Команды

Запрос help выведет все команды Windows 7, доступные для ввода в данный момент. Для большинства из них возможна установка параметров или значений. Мы рассмотрим те запросы, которые могут пригодиться обычному пользователю.

Таймер на выключение ПК

Команда shutdown отвечает за выключение компьютера. Для нее существуют следующие атрибуты:

  • -s — выключает ПК сразу же после ввода.
  • -s -t 50 — выключает ПК через определенное время (50 — количество секунд, цифру можно менять на любую).
  • -a — отмена таймера выключения.

Указанные атрибуты прописываются через пробел после команды. Выглядит это следующим образом: «запрос атрибут». Например, для выключения ПК через 3 минуты нужно прописать следующее:

Отображение конфигурации компьютера

Сведения о конфигурации компьютера можно получить через systeminfo.Там отобразится состояние сетевых подключений, установленный объем ОЗУ, примененные обновления и прочая информация.

Проверка диска

Команда chkdsk вызывает состояние логических разделов диска. А ее использование со следующими атрибутами выполнит проверку:

  • /r — исследование диска на предмет поврежденных разделов. Если таковые будут обнаружены, система попытается их автоматические восстановить.
  • /v — запуск процедуры проверки с отображением исследуемых файлов.
  • /f — запускает исправление ошибок. При этом потребуется блокировка диска, о чем и оповестит система.

Проверка компонентов системы

Для вызова данной функции используется запрос sfc. Он позволяет проверить состояние компонентов системы и восстановить их, если обнаружено повреждение. Это полезная команда, которая часто требуется при исправлении ошибок исполняемых файлов.

Запускается она со следующими атрибутами:

  • /scannow — сразу запускает процедуру проверки.
  • /scanonce — назначает проверку на перезагрузку ПК.
  • /scanboot — проверка включается всегда, когда загружается Windows.

@top-advice.ru


С этим читают