Допустим, у меня в проводнике Windows открыта папка, например такая:
Я хочу, чтобы я мог открыть терминал Cygwin прямо здесь, используя сочетание клавиш или alteast, щелкнув правой кнопкой мыши и выбрав опцию во всплывающем меню, которая позволяет это сделать. Мне также часто нужно будет открывать MinGW, PowerShell или Windows Command Terminal таким образом в определенном каталоге.
Сейчас я открываю терминал, копирую-вставляю и путь и использую команду CD, чтобы сменить каталог. Но я уверен, что должен быть более быстрый способ сделать это, когда нам нужно делать это десятки раз каждый день на протяжении десятилетий.
Кстати, я использую Windows 10 и, вероятно, скоро перейду на Windows 11.
решение1
Контекстное меню фона папки управляется ключом HKEY_CLASSES_ROOT\Directory\background\shell
реестра. Например, запись «Открыть с помощью Visual Studio» управляется подключом AnyCode
.
Командная строка и PowerShell
В Windows 10 уже есть записи для cmd.exe
и powershell.exe
, но по умолчанию они скрыты. Вы можете отобразить PowerShell, удерживая клавишу Shiftи щелкнув правой кнопкой мыши фон окна папки. Командная строка скрыта, если PowerShell установлен с использованием значения HideBasedOnVelocityId
.
Чтобы всегда отображать командную строку и PowerShell в фоновом контекстном меню папки без необходимости удерживать клавишу Shift:
- Предоставьте себе разрешение на изменение
shell
ключа.- Щелкните правой кнопкой мыши по ключу в редакторе реестра.
- Выберите «Разрешения» > «Дополнительно».
- Измените владельца на
Administrators
и установите флажки «Заменить владельца подконтейнеров и объектов» и «Заменить все записи разрешений дочерних объектов на наследуемые записи разрешений этого объекта». - Нажмите «ОК», чтобы закрыть диалоговые окна «Разрешения».
- В обоих
cmd
подразделах иPowerShell
удалите или переименуйте значенияExtended
,HideBasedOnVelocityId
иShowBasedOnVelocityId
.
Теперь, если щелкнуть правой кнопкой мыши по фону папки, в контекстном меню должны появиться пункты «Открыть окно команд здесь» и «Открыть окно PowerShell здесь».
Новые записи
Чтобы добавить новые записи в контекстное меню фона папки, вы можете создать новые ключи в разделе HKEY_CLASSES_ROOT\Directory\background\shell
реестра.
- Имя нового ключа может быть любым уникальным именем, оно не отображается в пользовательском интерфейсе.
- Текстовая метка записи контекстного меню управляется значением
(Default)
ключа. - Необязательный значок записи контролируется
Icon
строковым значением в подключе. Это может быть имя файла ICO или PE-файла (DLL/EXE) с необязательным числовым идентификатором, разделенным запятой. Индекс может быть неотрицательным для индекса значка в PE-файле, начинающегося с 0, или отрицательным для идентификатора ресурса. - Программа и аргументы для запуска при щелчке по записи контролируются значением
(Default)
подключаемогоcommand
ключа. Он использует%V
переменную-заполнитель для представления текущего каталога.
Пример MinGW Bash
У меня установлен MinGW Bash как часть Git для Windows. Вот .reg
файл, который добавляет его в контекстное меню фона моей папки. Ваш каталог установки, вероятно, будет отличаться.
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Directory\Background\shell\bash]
@="Open in Bash"
"Icon"="C:\\Programs\\Development\\Git\\mingw64\\share\\git\\git-for-windows.ico"
[HKEY_CLASSES_ROOT\Directory\Background\shell\bash\command]
@="\"C:\\Programs\\Development\\Git\\bin\\bash.exe\""
Это открывает Bash в указанной папке, даже если команда не использует %V
, поскольку Windows запускает процесс с папкой в качестве рабочего каталога нового процесса по умолчанию (если только NoWorkingDirectory
в ключе не указано значение).
У меня больше не установлен Cygwin, но пункт меню для Bash, скорее всего, можно добавить аналогичным образом.
В Windows 11 пункт «Открыть в терминале» всегда виден в соответствующем меню, хотя его сложнее настроить.