Заметки о Windows и других программных продуктах Microsoft...

Добавляем cmd и PowerShell в контекстное меню проводника

Добавляем cmd и PowerShell в контекстное меню проводника

По умолчанию CMD и PowerShell запускаются либо в профиле текущего пользователя, либо (если процесс запущен от имени администратора) в системной папке Windows\system32. И если требуется выполнить команду или запустить скрипт в другой директории, то надо сначала в эту директорию перейти либо указать в команде  полный путь. Чтобы немного облегчить себе жизнь и сэкономить время можно добавить команду для запуска консоли в контекстное меню проводника.

Напомню, меню открывается кликом правой клавиши мышки по объекту (файлу, папке и т.п.), а контекстным оно называется потому, что набор пунктов меняется в зависимости от выбранного объекта.

контекстное меню проводника

 

Соответственно нам надо в меню директории добавить пункт для запуска консоли в этой директории. Сделать это можно с помощью несложного твика реестра.

Примечание. О том, как работать с реестром, можно почитать здесь.

Настройки, отвечающие за контекстное меню для директории, находятся в разделе HKEY_CLASSES_ROOT\Directory\shell. Для запуска командной строки создадим в этом разделе подраздел с именем cmd. Хотя имя раздела в принципе неважно, но желательно сделать его интуитивно понятным, чтобы не путаться.

Дефолтному параметру в созданном разделе зададим значение ″Open SMD here…″, эта строка будет отображаться как название пункта меню. А если тут же создать пустой строковый параметр с именем Extended, то новый пункт меню будет виден только в расширенном режиме, т.е. при нажатии Shift+правая клавиша мыши.

добавление пункта меню

 

Затем в созданном разделе создадим подраздел с именем command и зададим дефолтному параметру следующее значение:

cmd.exe /s /k pushd ″%L″

Это команда, которая запускает консоль cmd в выбранной директории.

команда для cmd

 

Аналогичную структуру создаем для PowerShell, команда такая:

powershell.exe -NoExit -Command Set-Location -LiteralPath ′%L′

команда для powershell

 

Осталось проверить результат. Для этого берем папку, открываем контекстное меню, выбираем пункт ″Open PowerShell here…″

изменения в меню

 

и консоль PowerShell открывается сразу в выбранной папке. Очень удобно.

результат выполнения команды

 

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

отключение пункта меню

 

Вот как то так.

 
 
Комментарии

Зачем заморачиваться с реестром? Когда достаточно в нужной папке зажать Shift + right click мыши, результат тот же.

@С’эр
Несовсем, обычно только cmd предоставлена, а в Windows 10 1703 Powershell.

romash1408

Спасибо большое, статья годная, хоть и powershell уже добавили туда по умолчанию, есть и другие программы, которые иногда хочется запускать по правому клику…
Есть пара вопросов, которые могли бы быть хорошим дополнением к статье:
1. Как сделать аналогичные дополнения для контекстного меню файла или или директории, в которой я уже нахожусь (очень часто директория, в которой хочется открыть командную строку, уже открыта, у неё есть контекстное меню (правый клик по пустому месту), для которого видимо в реестре идёт отдельная ветка)?
2. Как создать аналог «Открыть от имени администратора»?

1. Возможно здесь:
HKEY_CLASSES_ROOT\Directory\Background\shell
HKEY_CURRENT_USER\Software\Classes\directory\Background\shell
2. Что значит аналог? Чем оригинал не устраивает?

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\shell\CMD>]
@=»CMD>»
«Extended»=»»

[HKEY_CLASSES_ROOT\Directory\shell\CMD>\command]
@=»cmd.exe /s /k pushd ″%L″»