Terminal: Добавьте "открыть терминал Windows здесь" в контекстное меню, вызываемое правой кнопкой мыши.

Созданный на 30 мая 2019  ·  235Комментарии  ·  Источник: microsoft/terminal

Добавить «открыть терминал Windows здесь», чтобы щелкнуть правой кнопкой мыши контекстное меню?

Мы знаем, что для Windows 7 по умолчанию, когда мы нажимаем «Shift + правый щелчок мышью», когда мы входим в папку, ничего не выбирая, мы можем увидеть опцию «открыть окно команд здесь».

image

В то время как для Windows 10 по умолчанию, когда мы нажимаем «Shift + правый щелчок мышью», мы видим опцию «открыть окно PowerShell здесь».

Итак, для Windows 10 (версии более поздней, чем 1903), как мы можем сделать следующие три параметра доступными в контекстном меню, вызываемом правой кнопкой мыши?

  • откройте командное окно здесь
  • откройте окно PowerShell здесь
  • откройте терминал Windows здесь

С нетерпением жду вашего ответа, большое спасибо ~

Area-User Interface Help Wanted Issue-Feature Product-Terminal Resolution-Fix-Committed

Самый полезный комментарий

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

Все 235 Комментарий

Если добавить его, я думаю, что здесь должен быть еще один вариант выбора в открытом терминале Windows, чтобы выбрать, на самом деле, какую оболочку открыть в качестве подменю контекстного меню (или подобного) с `` именем '', написанным в профилях терминала, например

  • Powershell
  • CMD
  • Ubuntu

Я думаю, что это хороший запрос функции, и мы определенно примем помощь от сообщества.

Мое чутье подсказывает, что это будет связано с работой над # 689, но я недостаточно знаю о Win32, чтобы быть уверенным.

Вероятно, это примерно так: https://www.codeproject.com/Articles/441/The-Complete-Idiot-s-Guide-to-Writing-Shell-Extens

Но, надеюсь, без повторного введения ATL в нашу кодовую базу ...

Это проще простого - добавить одну команду в контекстное меню папки. Это простой ключ реестра.

Например (а затем вы также можете добавить значок и т. Д.)

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Classes\Directory\Background\shell\Open Thing Here\command]
@="C:\\thing.exe \"%1\""

для упакованных приложений это объявлено в манифесте. см. это: https://docs.microsoft.com/en-us/uwp/schemas/appxpackage/uapmanifestschema/element-uap-filetypeassociation. Я не думаю, что это поддерживает папки, но начните искать здесь.

Скорее всего, дубликат № 561, но мы его отследим.

@miniksa @ zadjii-msft @ DHowett-MSFT @factormystic @ChrisGuzak

Решил проблему сейчас, можно было закрыть. Большое спасибо всем, кто участвовал в этой дискуссии.

Шаг 0:

Проверьте, хорошо ли работают две приведенные ниже константы, которые будут использоваться в следующих шагах.

echo %USERPROFILE%

echo %LOCALAPPDATA%

Если здесь все работает хорошо, то эти две константы можно использовать непосредственно в следующих шагах.

Или выполните следующие замены в следующих шагах:

% USERPROFILE% → C:\Users\[userName]
% LOCALAPPDATA% → C:\Users\[userName]\AppData\Local

Здесь [userName] представляет ваше имя пользователя , например, мое - Bruce .

Шаг 1:
Выполните следующие действия в CMD :

mkdir "%USERPROFILE%\AppData\Local\terminal"

image

Шаг 2:
Скопируйте значок терминала Windows в папку %USERPROFILE%\AppData\Local\terminal , значок можно получить в https://github.com/yanglr/WindowsDevTools/tree/master/awosomeTerminal/icons , имя файла которого wt_32.ico .

Шаг 3:
Сохраните следующий контент как wt.reg , затем запустите от имени администратора.

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt]
@="Windows terminal here"
"Icon"="%USERPROFILE%\\AppData\\Local\\terminal\\wt_32.ico"

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt\command]
@="%LOCALAPPDATA%\\Microsoft\\WindowsApps\\wt.exe"

Следует отметить , что если exe, полученный после самостоятельной сборки кода, равен wtd.exe , вам необходимо изменить указанное выше wt.exe на wtd.exe в приведенном выше реестре.

Шаг 4:
Контрольная работа
image

Для меня это не сработало (не могу получить к нему доступ), а для меня это был wtd.exe (даже не сработал).
И я думаю, это может быть функция терминала.

@ SJang1
Думаю, вы использовали ту версию, которую создали сами, поэтому вам нужно использовать wtd.exe . Чтобы входящая официальная версия входила в Windows Store , правильным вариантом здесь является wt.exe . На данный момент вы можете получить предварительную версию здесь (файл .7z в https://github.com/yanglr/WindowsDevTools/tree/master/awosomeTerminal ), а затем использовать wt.exe после установки. Я принял этот метод.

@yanglr Я использовал wtd.exe и не работал из-за ошибки невозможности доступа к нему .. Однако каждый конечный пользователь не мог добавлять файлы в реестр один за другим.

@ SJang1
Я думаю, вы создали код в Debug mode , пожалуйста, измените его на Release mode , см. Ниже:
image

@yanglr
Уже встроенный релиз.
image

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

@ zadjii-msft
Круто, здорово!

Это еще не было добавлено, поэтому я бы предпочел оставить эту проблему открытой до тех пор, пока работа по ее добавлению не будет завершена :)

Могу я попробовать, если над этим никто не работает?

@MelulekiDube дерзай !

Мой главный совет здесь заключается в том, что мы пытаемся сделать TerminalApp более похожим на UWP и делаем вещи, подобные Win32, в проекте WindowsTerminal. Поскольку эта функция, вероятно, довольно тяжелая для Win32, я бы, вероятно, предложил какое-то событие, при котором App (в TerminalApp) может срабатывать, чтобы уведомить AppHost (в WindowsTerminal) о том, что он должен настроить ярлыки. В качестве примера, я считаю, что есть событие TitleChanged которое App может запустить, чтобы AppHost установил заголовок окна.

Кроме того, поскольку Profile не относится к типу winrt, может быть трудно получить доступ к его членам прямо из проекта WindowsTerminal. Возможно, вам потребуется передать App соответствующие биты Profile в самом событии. В качестве альтернативы вы можете попробовать сделать его типом winrt (в комплекте с файлом .idl), но это может быть немного сложнее.

Удачи!

РЕДАКТИРОВАТЬ: Я исправляю это утверждение, чтобы ЗДЕСЬ БЫТЬ ДРАКОНАМИ . Есть работа, которую, возможно, придется выполнить в # 607 / # 1065, прежде чем это вообще можно будет сделать.

Я обеспокоен тем, что это должно быть тесно связано с № 607, который все еще находится на стадии предварительной спецификации.

@ DHowett-MSFT, это хороший аргумент. Я также забыл о недавнем регрессе в # 1065. На самом деле это может подпадать под категорию жестких вещей. Даже если бы мы не делали это для каждого профиля, открыть профиль по умолчанию в текущем каталоге не получится.

Я даже не знаю, как бы мы исправили # 1065, но если бы мы это исправили, то теоретически мы могли бы найти способ создать новый экземпляр Windows Terminal, используя каталог из проводника, но это не решило бы проблему per -профильный выпуск. хмммм.

Может ли что-то вроде выставления staringDirectory, чтобы вы могли передать его в exe вариант?

Да, это часть темы №607.

Привет @yanglr!
Это не подходящее место для обсуждения. В этом выпуске обсуждается функция «открыть терминал Windows здесь».

@ DHowett-MSFT
Ой, извините, удалил.

Я думаю, было бы здорово иметь не только «открыть терминал Windows здесь», но также «открыть терминал Windows здесь (администратор)», потому что оба хорошо используются всеми.

Я думал об этом,
image
..и если ему нравится то, что я думал, кажется, нет места для запуска от имени администратора.

Я думал об этом,
image
..и если ему нравится то, что я думал, кажется, нет места для запуска от имени администратора.

... если вы не разместите второе главное меню «Открыть WT здесь (администратор)» с такими же элементами подменю. Думаю, оба варианта в любом случае должны быть необязательными.

Я отредактировал реестр, чтобы добавить опцию в контекстное меню. Однако он открывается с C: \ Users \ username вместо текущего каталога.

@minhtuanta

Я обеспокоен тем, что это должно быть тесно связано с № 607, который все еще находится на стадии предварительной спецификации.

Может ли что-то вроде выставления staringDirectory, чтобы вы могли передать его в exe вариант?

Да, это часть темы №607.

wt.exe пока не поддерживает аргументы командной строки, поэтому нет возможности изменить папку, в которой начинается новый профиль.

Если бы я мог сделать предложение, я бы сказал, что параметры для открытия в терминале PowerShell, CMD и / или Linux следует заменить на «Открыть в терминале Windows», поскольку терминал Windows представляет собой комбинацию всех трех. Затем пользователь может установить свое значение по умолчанию из файла profile.json .

@yanglr @lllopo @ SJang1

Что-то вроде этого _должно_ работать сейчас. Я написал его в PowerShell, потому что он предназначен для ISO-сценария Windows после установки, но я не вижу проблем с его использованием в отличие от файла .reg.

PowerShell:

$Env.terminalDir ='$Env:localAppDir\Microsoft\WindowsApps' # Not really needed (except for icon), as wt.exe in in %PATH%

Invoke-WebRequest -UseBasicParsing "https://github.com/yanglr/WindowsDevTools/raw/master/awosomeTerminal/icons/wt_32.ico" -OutFile "$Env:terminalDir\wt.ico"  # Going to update my own to just grab icon from the appx package

Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\Background\shell\MenuTerminal' -Name 'MUIVerb' -Type String -Value 'Terminals'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\Background\shell\MenuTerminal' -Name 'Icon' -Type String -Value '$Env:terminalDir\wt.ico'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\Background\shell\MenuTerminal' -Name 'ExtendedSubCommandsKey' -Type String -Value 'Directory\\ContextMenus\\MenuTerminal'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuTerminal\shell\open' -Name 'MUIVerb' -Type String -Value 'PowerShell'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuTerminal\shell\open' -Name 'Icon' -Type String -Value 'PowerShell.exe'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuTerminal\shell\open' -Name 'ExtendedSubCommandsKey' -Type String -Value 'Directory\\ContextMenus\\MenuTerminal\\PS'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuTerminal\PS\shell\open' -Name 'MUIVerb' -Type String -Value 'PowerShell'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuTerminal\PS\shell\open' -Name 'Icon' -Type String -Value '$Env:terminalDir\wt.ico'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuTerminal\PS\shell\open\command' -Name '@' -Type String -Value 'wt.exe'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuTerminal\PS\shell\runas' -Name 'MUIVerb' -Type String -Value 'Elevated PowerShell'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuTerminal\PS\shell\runas' -Name 'Icon' -Type String -Value '$Env:terminalDir\wt.ico'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuTerminal\PS\shell\runas' -Name 'HasLUAShield' -Type String -Value ''
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuTerminal\PS\shell\runas\command'-Name '@' -Type String -Value 'wt.exe'

И что-то вроде этого _должно_ работать, когда можно выбирать между CMD и PowerShell при запуске Терминала (при условии, что он использует --Profile [CMD | PowerShell] ):

Powershell:

$Env.terminalDir ='$Env:localAppDir\Microsoft\WindowsApps'   # Not really needed (except for icon), as wt.exe in in %PATH%

Invoke-WebRequest -UseBasicParsing "https://github.com/yanglr/WindowsDevTools/raw/master/awosomeTerminal/icons/wt_32.ico" -OutFile "$Env:terminalDir\wt.ico"  # Going to update my own to just grab icon from the appx package

Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\Background\shell\MenuTerminal' -Name 'MUIVerb' -Type String -Value 'Terminals'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\Background\shell\MenuTerminal' -Name 'Icon' -Type String -Value '$Env:terminalDir\wt.ico'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\Background\shell\MenuTerminal' -Name 'ExtendedSubCommandsKey' -Type String -Value 'Directory\\ContextMenus\\MenuTerminal'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuTerminal\shell\open' -Name 'MUIVerb' -Type String -Value 'Command Prompt'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuTerminal\shell\open' -Name 'Icon' -Type String -Value 'cmd.exe'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuTerminal\shell\open' -Name 'ExtendedSubCommandsKey' -Type String -Value 'Directory\\ContextMenus\\MenuTerminal\\CMD'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuTerminal\CMD\shell\open' -Name 'MUIVerb' -Type String -Value 'Command Prompt'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuTerminal\CMD\shell\open' -Name 'Icon' -Type String -Value '$Env:terminalDir\wt.ico'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuTerminal\CMD\shell\open\command' -Name '@' -Type String -Value 'wt.exe --profile CMD'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuTerminal\CMD\shell\runas' -Name 'MUIVerb' -Type String -Value 'Elevated Terminal'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuTerminal\CMD\shell\runas' -Name 'Icon' -Type String -Value '$Env:terminalDir\wt.ico'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuTerminal\CMD\shell\runas' -Name 'HasLUAShield' -Type String -Value ''
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuTerminal\CMD\shell\runas\command'-Name '@' -Type String -Value 'wt.exe --profile CMD'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuTerminal\shell\open' -Name 'MUIVerb' -Type String -Value 'PowerShell'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuTerminal\shell\open' -Name 'Icon' -Type String -Value 'PowerShell.exe'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuTerminal\shell\open' -Name 'ExtendedSubCommandsKey' -Type String -Value 'Directory\\ContextMenus\\MenuTerminal\\PS'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuTerminal\PS\shell\open' -Name 'MUIVerb' -Type String -Value 'PowerShell'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuTerminal\PS\shell\open' -Name 'Icon' -Type String -Value '$Env:terminalDir\wt.ico'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuTerminal\PS\shell\open\command' -Name '@' -Type String -Value 'wt.exe --profile PowerShell'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuTerminal\PS\shell\runas' -Name 'MUIVerb' -Type String -Value 'Elevated PowerShell'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuTerminal\PS\shell\runas' -Name 'Icon' -Type String -Value '$Env:terminalDir\wt.ico'
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuTerminal\PS\shell\runas' -Name 'HasLUAShield' -Type String -Value ''
Set-ItemProperty-Path 'HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuTerminal\PS\shell\runas\command'-Name '@' -Type String -Value 'wt.exe --Profile PowerShell'

@yanglr Я выполнил ваши шаги, появляется меню правой кнопки, но при нажатии explorer.exe сообщает: «Windows не может получить доступ к указанному устройству, пути или файлу. У вас может не быть соответствующего разрешения для доступа к элементу» (Windows не может Получите доступ к указанному устройству, пути или файлу. Возможно, у вас нет необходимых разрешений для доступа к элементу).

Запуск "% LOCALAPPDATA% \ Microsoft \ WindowsApps \ wt.exe" из командной строки открывает новый терминал, как и ожидалось, и у меня аналогичные настройки для msys, wsl-terminal, все работает нормально, только терминал Windows не работает.

@ chen-xin Это то, что помогло мне из-за ошибки доступа.
Выполните те же действия, что и https://github.com/microsoft/terminal/issues/1060#issuecomment -497539461.
Но для пути wt.exe вместо %LOCALAPPDATA% используйте фактический полный путь, например C:\\Users\\[your_user_acc]\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe .

Также не добавляйте startingDirectory в настройки.

@saisandeepvaddi Это сработало на fullpath, спасибо!

@miniksa @ zadjii-msft @ DHowett-MSFT @factormystic @ChrisGuzak

Решил проблему сейчас, можно было закрыть. Большое спасибо всем, кто участвовал в этой дискуссии.

Шаг 0:

Проверьте, хорошо ли работают две приведенные ниже константы, которые будут использоваться в следующих шагах.

echo %USERPROFILE%

echo %LOCALAPPDATA%

Если здесь все работает хорошо, то эти две константы можно использовать непосредственно в следующих шагах.

Или выполните следующие замены в следующих шагах:

% USERPROFILE% → C:\Users\[userName]
% LOCALAPPDATA% → C:\Users\[userName]\AppData\Local

Здесь [userName] представляет ваше имя пользователя , например, мое - Bruce .

Шаг 1:
Выполните следующие действия в CMD :

mkdir "%USERPROFILE%\AppData\Local\terminal"

image

Шаг 2:
Скопируйте значок терминала Windows в папку %USERPROFILE%\AppData\Local\terminal , значок можно получить в https://github.com/yanglr/WindowsDevTools/tree/master/awosomeTerminal/icons , имя файла которого wt_32.ico .

Шаг 3:
Сохраните следующий контент как wt.reg , затем запустите от имени администратора.

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt]
@="Windows terminal here"
"Icon"="%USERPROFILE%\\AppData\\Local\\terminal\\wt_32.ico"

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt\command]
@="%LOCALAPPDATA%\\Microsoft\\WindowsApps\\wt.exe"

Следует отметить , что если exe, полученный после самостоятельной сборки кода, равен wtd.exe , вам необходимо изменить указанное выше wt.exe на wtd.exe в приведенном выше реестре.

Шаг 4:
Контрольная работа
image

image

Я выполнил вашу инструкцию, но эта ошибка возникает везде, где я запускаю _Windows terminal here_

@Villivateur , вы пробовали https://github.com/microsoft/terminal/issues/1060#issuecomment -515134618

@miniksa @ zadjii-msft @ DHowett-MSFT @factormystic @ChrisGuzak
Решил проблему сейчас, можно было закрыть. Большое спасибо всем, кто участвовал в этой дискуссии.
Шаг 0:
Проверьте, хорошо ли работают две приведенные ниже константы, которые будут использоваться в следующих шагах.

echo %USERPROFILE%

echo %LOCALAPPDATA%

Если здесь все работает хорошо, то эти две константы можно использовать непосредственно в следующих шагах.
Или выполните следующие замены в следующих шагах:
% USERPROFILE% → C:\Users\[userName]
% LOCALAPPDATA% → C:\Users\[userName]\AppData\Local
Здесь [userName] представляет ваше имя пользователя , например, мое - Bruce .
Шаг 1:
Выполните следующие действия в CMD :

mkdir "%USERPROFILE%\AppData\Local\terminal"

image
Шаг 2:
Скопируйте значок терминала Windows в папку %USERPROFILE%\AppData\Local\terminal , значок можно получить в https://github.com/yanglr/WindowsDevTools/tree/master/awosomeTerminal/icons , имя файла которого wt_32.ico .
Шаг 3:
Сохраните следующий контент как wt.reg , затем запустите от имени администратора.

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt]
@="Windows terminal here"
"Icon"="%USERPROFILE%\\AppData\\Local\\terminal\\wt_32.ico"

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt\command]
@="%LOCALAPPDATA%\\Microsoft\\WindowsApps\\wt.exe"

Следует отметить , что если exe, полученный после самостоятельной сборки кода, равен wtd.exe , вам необходимо изменить указанное выше wt.exe на wtd.exe в приведенном выше реестре.
Шаг 4:
Контрольная работа
image

image

Я выполнил вашу инструкцию, но эта ошибка возникает везде, где я запускаю _Windows terminal here_

Как сказал @saisandeepvaddi,
Для пути wt.exe вместо %LOCALAPPDATA% используйте фактический полный путь, например C:\\Users\\[your_user_acc]\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe .

Также не добавляйте startingDirectory в настройки.

Он хорошо работает на моем ПК. Можешь попробовать.

Пытался добавить wt.exe в реестр, как описано ранее, но у меня следующая ошибка:
image

Терминал запускается из командной строки (Win + R | "wt") нормально.

Я считаю настройку нового Терминала сильной стороной. Что, если бы это было в настройках? Скажем, "ExplorerIntegration": true . Затем пакетный скрипт может добавить их, как в проекте FluentTerminal .

Эй, я просто потратил немного времени на то, чтобы открыть Терминал Windows в определенной папке правой кнопкой мыши, и подумал, что это может быть интересно / полезно для кого-то. Это также работает, когда вы переключаетесь на подсистему linux, но не на CMD. Вы также можете просто не использовать профиль PowerShell и использовать $ env с немного более приятным именем, чтобы получить переменную для использования в трех.

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

C: \ Users \ [Ваше имя пользователя] AppData \ Local \ terminal \ launchwt.bat

set wt_powershell_dir=%cd%
start %LOCALAPPDATA%\\Microsoft\\WindowsApps\\wt.exe
exit

C: \ Users \ [Ваше имя пользователя] \ Documents \ WindowsPowerShell \ Microsoft.PowerShell_profile.ps1

if (Test-Path $env:wt_powershell_dir) {
   cd $env:wt_powershell_dir
   Remove-Item Env:\wt_powershell_dir
}

Вам также нужно будет перейти к установленному разделу реестра и обновить его, чтобы указать на командный файл:

Computer\HKEY_CLASSES_ROOT\Directory\Background\shell\wt\command

C:\Users\[Your Username]\AppData\Local\terminal\launchwt.bat

До сих пор было весело поиграть с терминалом, спасибо большое 😄.

@minhtuanta Попробуй удалить startingDirectory в настройках. 😊

Удаление startingDirectory работает для меня. Какой подлый сеттинг 😛

В качестве альтернативы контекстному меню (пока отличная работа): если вы выделите адресную строку текущего каталога, нажав ctrl+l или щелкнув его, а затем набрав wt.exe , откроется терминал Windows ваша оболочка по умолчанию в этом каталоге.

@kaeside хочет

Вы можете получить настоящую иконку из репозитория в github

@kaeside Не уверен, какую версию вы используете, но я всегда открываю командную строку таким образом (Alt + D, введите cmd ), и она открывается в текущем рабочем каталоге, но в случае терминала Windows он всегда открывается в Каталог пользователей.
По крайней мере, для Version: 0.3.2171.0

Да, это из-за startingDirectory , который упоминается в ряде других комментариев в этой ветке. Исправление # 607, о котором также упоминается.

Пытался добавить wt.exe в реестр, как описано ранее, но у меня следующая ошибка:
image

Терминал запускается из командной строки (Win + R | "wt") нормально.

В моем случае wt.exe находится в C:\Users\[your_user_name]\AppData\Local\Microsoft\WindowsApps\ .
И вы можете проверить каждый элемент в переменной вашего окружения% PATH%.

Недавно я обновил терминал Windows до версии: 0.5.2661.0.
Внезапно щелчок правой кнопкой мыши по контекстному меню «открыть терминал Windows здесь» всегда начинается с C:\Users\[username] , даже если в файле profiles.json нет «startDirectory».

Для меня это было исправлено добавлением "startDirectory": "." в файл profiles.json.
Надеюсь, это поможет кому-то с подобной проблемой.

Пакетный файл, который решает проблемы с решением @yanglr . В частности, причина, по которой переменные среды не работали, заключается в том, что строки, содержащие их, должны быть добавлены как REG_MULTI_SZ, а не как REG_SZ по умолчанию.

<strong i="7">@echo</strong> off

reg.exe add "HKEY_CLASSES_ROOT\Directory\Background\shell\wt" /f /ve /d "Windows Terminal here"
reg.exe add "HKEY_CLASSES_ROOT\Directory\Background\shell\wt" /f /v "Icon" /t REG_EXPAND_SZ /d "\"%%USERPROFILE%%\Downloads\terminal.ico\""

reg.exe add "HKEY_CLASSES_ROOT\Directory\Background\shell\wt\command" /f /ve /t REG_EXPAND_SZ /d "\"%%LOCALAPPDATA%%\Microsoft\WindowsApps\wt.exe\""

pause

Выгрузите вышеуказанное в файл .bat, настройте расположение значков по своему вкусу, сохраните и запустите от имени администратора , наслаждайтесь. И не забудьте комментарий @rendrap об изменении профиля startingDirectory на . чтобы все работало должным образом.

@IanKemp ну, теперь переменные среды работают, спасибо, но с момента последнего обновления из магазина приложений он не открывается в каталоге, у вас есть какое-либо решение для этого?

@poqdavid Я предлагаю вам прочитать комментарий @rendrap , как я предлагал.

Итак, у меня работает щелчок правой кнопкой мыши «Открыть терминал Windows здесь», но я не могу понять, как заставить его работать от имени администратора. Я пробовал использовать runas в реестре, а также глагол runas, но безуспешно.

Однако, если я нажму клавишу Windows -> введите «Терминал» -> нажмите «Запуск от имени администратора», я получу терминал Windows, работающий от имени администратора, так что это определенно возможно.

В чем секрет настройки среды WT так, чтобы она запускалась от имени администратора?

@IanKemp Если вы в основном работаете с PowerShell, вы можете попробовать sudo . Этот сценарий позволяет запускать команды от имени администратора в окне PowerShell без повышенных прав.

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

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt]
@="Windows terminal here"
"Icon"="%ProgramFiles%\\WindowsApps\\Microsoft.WindowsTerminal_0.5.2681.0_x64__8wekyb3d8bbwe\\WindowsTerminal.exe"
"Extended"=""

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt\command]
@="C:\\Users\\andre\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe"


[HKEY_CLASSES_ROOT\Directory\shell\wt]
@="Windows terminal here"
"Icon"="%ProgramFiles%\\WindowsApps\\Microsoft.WindowsTerminal_0.5.2681.0_x64__8wekyb3d8bbwe\\WindowsTerminal.exe"
"Extended"=""

[HKEY_CLASSES_ROOT\Directory\shell\wt\command]
@="C:\\Users\\andre\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe"

РЕДАКТИРОВАТЬ: Как упоминалось выше, установите для вашего начального каталога значение "." в вашем profile.json

"startingDiretory" : ".",

Я использую Windows Terminal с Ubuntu WSL
Есть ли способ сделать так, чтобы, если я использую «Терминал Windows здесь», он открывался в том каталоге, в котором я нахожусь, но если я просто запускаю Терминал Windows в обычном режиме, он перебрасывает меня в Ubuntu ~?

Заставить меня по умолчанию перетащить меня в Ubuntu home было относительно легко сделать вот так:
"commandline" : "wsl.exe ~ -d Ubuntu-18.04"
но затем добавление "startingDirectory": "." естественно не дает ожидаемого результата для ярлыка контекстного меню. Без ~ в commandline он порождает оболочку в /mnt/c/Windows/System32

Вот фрагмент моего файла настроек:

    "defaultProfile": "{2c4de342-38b7-51cf-b940-2309a097f518}",
    "profiles":
    [
        {
            "guid": "{2c4de342-38b7-51cf-b940-2309a097f518}",
            "name": "Ubuntu",
            // ... SNIPP
            //"startingDirectory" : "\\\\wsl$\\Ubuntu\\home\\andre",
            "startingDirectory" : ".",
            // ... SNIPP
        },
        // ... SNIPP
    ]

Он открывает каталог, в котором вы находитесь, при использовании Windows terminal here . Но откроет /mnt/c/Windows/System32 когда терминал открыт нормально. Я не решил эту проблему, эфир.
Как вы можете видеть, я также жестко определил домашний каталог ранее, прежде чем начать использовать "."

@zambelly В настоящее время нет. В этом сценарии, вероятно, потребуется исправить # 878, чтобы иметь возможность поддерживать.

Итак, у меня работает щелчок правой кнопкой мыши «Открыть терминал Windows здесь», но я не могу понять, как заставить его работать от имени администратора. Я пробовал использовать runas в реестре, а также глагол runas, но безуспешно.

Однако, если я нажму клавишу Windows -> введите «Терминал» -> нажмите «Запуск от имени администратора», я получу терминал Windows, работающий от имени администратора, так что это определенно возможно.

В чем секрет настройки среды WT так, чтобы она запускалась от имени администратора?

@IanKemp Вы можете попробовать этот способ, изменив значение command разделе реестра runas :
cmd.exe /s /c pushd "%V" & start wt.exe

Хотя это немного окольным образом, по крайней мере, это работает для меня.

Есть ли способ, если уже запущен экземпляр wt.exe, вместо этого добавить туда вкладку?
И есть ли способ указать, какой профиль у новой вкладки?

Пытался добавить wt.exe в реестр, как описано ранее, но у меня следующая ошибка:
image

Терминал запускается из командной строки (Win + R | "wt") нормально.

Та же проблема с моей стороны, не знаю, как ее исправить. Файл реестра следующим образом:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt]
@="Open Windows terminal here"
"Icon"="%USERPROFILE%\\AppData\\Local\\terminal\\wt.ico"

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt\command]
@="%LOCALAPPDATA%\\Microsoft\\WindowsApps\\wt.exe"


[HKEY_CLASSES_ROOT\Directory\shell\wt]
@="Open Windows terminal here"
"Icon"="%USERPROFILE%\\AppData\\Local\\terminal\\wt.ico"

[HKEY_CLASSES_ROOT\Directory\shell\wt\command]
@="%LOCALAPPDATA%\\Microsoft\\WindowsApps\\wt.exe"

У вас должен быть абсолютный путь и не использовать переменную
см. https://github.com/microsoft/terminal/issues/1060#issuecomment -536322970

Я чувствую, что это причина, по которой я больше не использую Терминал, так как способ открытия командной строки на 80% выполняется из проводника. Остальное - от Win + R + cmd + Enter, и я только что узнал о псевдониме wt , так что это поможет.

Когда это будет сделано, будет отличная возможность выставить его в настройках, где есть переключатель PowerShell / CMD:

image

Было бы здорово иметь возможность просто выбрать предпочтительную оболочку в раскрывающемся списке и использовать Терминал в качестве опции, если он установлен.

@ michael-hawker то, что вы действительно ищете, это # ​​492 😁

Я автоматизировал весь процесс в один bat-файл, который вам нужно запустить как администратор.
Добавить Windows Terminal в context menu.zip
Вам все равно нужно изменить начальный каталог в profiles.json на "startingDirectory" : ".",

@ Restia666Ashdoll , который, похоже, неправильно понимает .ico

Хотя здесь работает
image

Попробуй это. Откройте расположение файла terminal.ico. Теперь перейдите в адресную строку и введите «cmd».
Теперь в командной строке введите следующую команду
xcopy "terminal.ico" "%LOCALAPPDATA%\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState\" /b /v /y /q

Не работает

Просто откройте "% LOCALAPPDATA% \ Packages \ Microsoft.WindowsTerminal_8wekyb3d8bbwe \ LocalState" и вручную скопируйте файл ico, затем

Да, я сделал это, но проблема в том, что ключ реестра не принимает ico

Я автоматизировал весь процесс в один bat-файл, который вам нужно запустить как администратор.
Добавить Windows Terminal в context menu.zip
Вам все равно нужно изменить начальный каталог в profiles.json на "startingDiretory" : ".",

Предупреждение: есть ошибка при вводе, вместо этого следует использовать "startingDirectory" : "." .

как насчет ключа HKEY_CURRENT_USER\Software\Classes\Directory\Background\shell\wt ? Не требует разрешения администратора

как насчет ключа HKEY_CURRENT_USER\Software\Classes\Directory\Background\shell\wt ? Не требует разрешения администратора

Это только для текущего пользователя.

@ Restia666Ashdoll и @musm , выйдите из системы и снова войдите в систему после копирования файла ico в папку LocalAppData. После этого появится значок.

image

@edrohler Почему вы цитируете меня? У меня нет этой проблемы.

@Horacehxw , только если это последняя запись.

@ Restia666Ashdoll Я процитировал вас, думая, что вы, возможно, захотите поделиться информацией с вашим пакетным скриптом, если кто-то еще спросит. :)

выйти и войти снова

@edrohler Используйте диспетчер задач для перезапуска. explorer.exe достаточно.
Когда у вас есть хотя бы одна открытая папка, диспетчер задач покажет для нее Restart в обычном положении End Task (на первой странице, а не в деталях процесса)

@Horacehxw , только если это последняя запись.

Проблема не в запятой в конце, а в написании слова «Справочник». В предыдущем отсутствует буква "c".

Я автоматизировал весь процесс в один bat-файл, который вам нужно запустить как администратор.
Добавить Windows Terminal в context menu.zip
Вам все равно нужно изменить начальный каталог в profiles.json на "startingDirectory" : ".",

Я пробовал это, но две проблемы: теперь в profile.json есть startingDirectory :


// To view the default settings, hold "alt" while clicking on the "Settings" button.
// For documentation on these settings, see: https://aka.ms/terminal-documentation

{
    "$schema": "https://aka.ms/terminal-profiles-schema",

    "defaultProfile": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",

    "profiles":
    [
        {
            // Make changes here to the powershell.exe profile
            "guid": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
            "name": "Windows PowerShell",
            "commandline": "powershell.exe",
            "hidden": false
        },
        {
            // Make changes here to the cmd.exe profile
            "guid": "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}",
            "name": "cmd",
            "commandline": "cmd.exe",
            "hidden": false
        },
        {
            "guid": "{b453ae62-4e3d-5e58-b989-0a998ec441b8}",
            "hidden": false,
            "name": "Azure Cloud Shell",
            "source": "Windows.Terminal.Azure"
        },
        {
            "guid": "{c6eaf9f4-32a7-5fdc-b5cf-066e8a4b1e40}",
            "hidden": false,
            "name": "Ubuntu-18.04",
            "source": "Windows.Terminal.Wsl"
        }
    ],

    // Add custom color schemes to this array
    "schemes": [],

    // Add any keybinding overrides to this array.
    // To unbind a default keybinding, set the command to "unbound"
    "keybindings": []
}

Другая проблема заключается в том, что терминал на самом деле не идет по правильному пути «здесь», он начинается только с моего пользовательского пути.

Я автоматизировал весь процесс в один bat-файл, который вам нужно запустить как администратор.
Добавить Windows Terminal в context menu.zip
Вам все равно нужно изменить начальный каталог в profiles.json на "startingDiretory" : ".",

Предупреждение: есть ошибка при вводе, вместо этого следует использовать "startingDirectory" : "." .

Это отлично работает, если вы прямо сейчас откроете здесь ...
Единственная проблема, которую я заметил, заключается в том, что если вы обычно открываете терминал ... каталог по умолчанию - system32 ... есть ли способ переопределить и использовать папку пользователя при обычном открытии?

Я автоматизировал весь процесс в один bat-файл, который вам нужно запустить как администратор.
Добавить Windows Terminal в context menu.zip
Вам все равно нужно изменить начальный каталог в profiles.json на "startingDirectory" : ".",

Я пробовал это, но две проблемы: теперь в profile.json есть startingDirectory :


// To view the default settings, hold "alt" while clicking on the "Settings" button.
// For documentation on these settings, see: https://aka.ms/terminal-documentation

{
    "$schema": "https://aka.ms/terminal-profiles-schema",

    "defaultProfile": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",

    "profiles":
    [
        {
            // Make changes here to the powershell.exe profile
            "guid": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
            "name": "Windows PowerShell",
            "commandline": "powershell.exe",
            "hidden": false
        },
        {
            // Make changes here to the cmd.exe profile
            "guid": "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}",
            "name": "cmd",
            "commandline": "cmd.exe",
            "hidden": false
        },
        {
            "guid": "{b453ae62-4e3d-5e58-b989-0a998ec441b8}",
            "hidden": false,
            "name": "Azure Cloud Shell",
            "source": "Windows.Terminal.Azure"
        },
        {
            "guid": "{c6eaf9f4-32a7-5fdc-b5cf-066e8a4b1e40}",
            "hidden": false,
            "name": "Ubuntu-18.04",
            "source": "Windows.Terminal.Wsl"
        }
    ],

    // Add custom color schemes to this array
    "schemes": [],

    // Add any keybinding overrides to this array.
    // To unbind a default keybinding, set the command to "unbound"
    "keybindings": []
}

Другая проблема заключается в том, что терминал на самом деле не идет по правильному пути «здесь», он начинается только с моего пользовательского пути.

Вот мой профиль, если тебе интересно

{
    "$schema": "https://aka.ms/terminal-profiles-schema",
    "globals" : 
    {
        "alwaysShowTabs" : true,
        "defaultProfile" : "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
        "disabledProfileSources": [
        "Windows.Terminal.Azure"
    ],
        "initialCols" : 120,
        "initialRows" : 30,
        "keybindings" : 
        [
            {
                "command" : "closePane",
                "keys" : 
                [
                    "ctrl+shift+w"
                ]
            },
            {
                "command" : "copy",
                "keys" : 
                [
                    "ctrl+shift+c"
                ]
            },
            {
                "command" : "duplicateTab",
                "keys" : 
                [
                    "ctrl+shift+d"
                ]
            },
            {
                "command" : "newTab",
                "keys" : 
                [
                    "ctrl+shift+t"
                ]
            },
            {
                "command" : "newTabProfile0",
                "keys" : 
                [
                    "ctrl+shift+1"
                ]
            },
            {
                "command" : "newTabProfile1",
                "keys" : 
                [
                    "ctrl+shift+2"
                ]
            },
            {
                "command" : "newTabProfile2",
                "keys" : 
                [
                    "ctrl+shift+3"
                ]
            },
            {
                "command" : "newTabProfile3",
                "keys" : 
                [
                    "ctrl+shift+4"
                ]
            },
            {
                "command" : "newTabProfile4",
                "keys" : 
                [
                    "ctrl+shift+5"
                ]
            },
            {
                "command" : "newTabProfile5",
                "keys" : 
                [
                    "ctrl+shift+6"
                ]
            },
            {
                "command" : "newTabProfile6",
                "keys" : 
                [
                    "ctrl+shift+7"
                ]
            },
            {
                "command" : "newTabProfile7",
                "keys" : 
                [
                    "ctrl+shift+8"
                ]
            },
            {
                "command" : "newTabProfile8",
                "keys" : 
                [
                    "ctrl+shift+9"
                ]
            },
            {
                "command" : "nextTab",
                "keys" : 
                [
                    "ctrl+tab"
                ]
            },
            {
                "command" : "openSettings",
                "keys" : 
                [
                    "ctrl+,"
                ]
            },
            {
                "command" : "paste",
                "keys" : 
                [
                    "ctrl+shift+v"
                ]
            },
            {
                "command" : "prevTab",
                "keys" : 
                [
                    "ctrl+shift+tab"
                ]
            },
            {
                "command" : "scrollDown",
                "keys" : 
                [
                    "ctrl+shift+down"
                ]
            },
            {
                "command" : "scrollDownPage",
                "keys" : 
                [
                    "ctrl+shift+pgdn"
                ]
            },
            {
                "command" : "scrollUp",
                "keys" : 
                [
                    "ctrl+shift+up"
                ]
            },
            {
                "command" : "scrollUpPage",
                "keys" : 
                [
                    "ctrl+shift+pgup"
                ]
            },
            {
                "command" : "switchToTab0",
                "keys" : 
                [
                    "ctrl+alt+1"
                ]
            },
            {
                "command" : "switchToTab1",
                "keys" : 
                [
                    "ctrl+alt+2"
                ]
            },
            {
                "command" : "switchToTab2",
                "keys" : 
                [
                    "ctrl+alt+3"
                ]
            },
            {
                "command" : "switchToTab3",
                "keys" : 
                [
                    "ctrl+alt+4"
                ]
            },
            {
                "command" : "switchToTab4",
                "keys" : 
                [
                    "ctrl+alt+5"
                ]
            },
            {
                "command" : "switchToTab5",
                "keys" : 
                [
                    "ctrl+alt+6"
                ]
            },
            {
                "command" : "switchToTab6",
                "keys" : 
                [
                    "ctrl+alt+7"
                ]
            },
            {
                "command" : "switchToTab7",
                "keys" : 
                [
                    "ctrl+alt+8"
                ]
            },
            {
                "command" : "switchToTab8",
                "keys" : 
                [
                    "ctrl+alt+9"
                ]
            }
        ],
        "requestedTheme" : "system",
        "showTabsInTitlebar" : true,
        "showTerminalTitleInTitlebar" : true,
        "wordDelimiters" : " ./\\()\"'-:,.;<>~!@#$%^&*|+=[]{}~?\u2502"
    },
    "profiles" : 
    [
        {
            "acrylicOpacity" : 0.75,
            "background" : "#012456",
            "closeOnExit" : true,
            "colorScheme" : "One Half Dark",
            "commandline" : "powershell.exe",
            "cursorColor" : "#FFFFFF",
            "cursorShape" : "bar",
            "fontFace" : "Consolas",
            "fontSize" : 10,
            "guid" : "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
            "historySize" : 9001,
            "icon" : "ms-appx:///ProfileIcons/{61c54bbd-c2c6-5271-96e7-009a87ff44bf}.png",
            "name" : "Windows PowerShell",
            "padding" : "0, 0, 0, 0",
            "snapOnInput" : true,
            "startingDirectory" : ".",
            "useAcrylic" : true
        },
        {
            "acrylicOpacity" : 0.75,
            "closeOnExit" : true,
            "colorScheme" : "One Half Dark",
            "commandline" : "cmd.exe",
            "cursorColor" : "#FFFFFF",
            "cursorShape" : "bar",
            "fontFace" : "Consolas",
            "fontSize" : 10,
            "guid" : "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}",
            "historySize" : 9001,
            "icon" : "ms-appx:///ProfileIcons/{0caa0dad-35be-5f56-a8ff-afceeeaa6101}.png",
            "name" : "Command Prompt",
            "padding" : "0, 0, 0, 0",
            "snapOnInput" : true,
            "startingDirectory" : ".",
            "useAcrylic" : true
        },
        {
            "acrylicOpacity" : 0.75,
            "closeOnExit" : true,
            "colorScheme" : "flat-ui-v1",
            "commandline" : "cmd.exe /c set MSYS=winsymlinks:nativestrict&& set MSYS2_PATH_TYPE=inherit&& msys2 -i -l",
            "cursorColor" : "#FFFFFF",
            "cursorShape" : "bar",
            "fontFace" : "Consolas",
            "fontSize" : 10,
            "historySize" : 9001,
            "icon" : "%SCOOP%\\apps\\msys2\\current\\msys2.ico",
            "name" : "MSYS2",
            "padding" : "0, 0, 0, 0",
            "snapOnInput" : true,
            "startingDirectory" : ".",
            "useAcrylic" : true
        },
        {
            "acrylicOpacity" : 0.75,
            "closeOnExit" : true,
            "colorScheme" : "flat-ui-v1",
            "commandline" : "cmd.exe /c set MSYS=winsymlinks:nativestrict&& set MSYS2_PATH_TYPE=inherit&& mingw64 -i -l",
            "cursorColor" : "#FFFFFF",
            "cursorShape" : "bar",
            "fontFace" : "Consolas",
            "fontSize" : 10,
            "historySize" : 9001,
            "icon" : "%SCOOP%\\apps\\msys2\\current\\mingw64.ico",
            "name" : "MinGW64",
            "padding" : "0, 0, 0, 0",
            "snapOnInput" : true,
            "startingDirectory" : ".",
            "useAcrylic" : true
        },
        {         
            "guid": "{a5a97cb8-8961-5535-816d-772efe0c6a3f}",
            "acrylicOpacity" : 0.75,
            "background" : "#012456",
            "closeOnExit" : true,
            "colorScheme" : "flat-ui-v1",
            "cursorColor" : "#FFFFFF",
            "cursorShape" : "bar",
            "fontFace" : "Consolas",
            "fontSize" : 10,
            "hidden": false,
            "name": "Arch",
            "icon" : "%SCOOP%\\apps\\archwsl\\current\\arch.ico",
            "source": "Windows.Terminal.Wsl",
            "padding" : "0, 0, 0, 0",
            "snapOnInput" : true,
            "startingDirectory" : ".",
            "useAcrylic" : true
        },
        {        
            "acrylicOpacity" : 0.75,
            "closeOnExit" : true,
            "colorScheme" : "flat-ui-v1",
            "commandline" : "\"%SCOOP%\\apps\\git-with-openssh\\current\\bin\\bash.exe\" -i -l",
            "cursorColor" : "#FFFFFF",
            "cursorShape" : "bar",
            "fontFace" : "Consolas",
            "fontSize" : 10,
            "historySize" : 9001,
            "icon" : "%SCOOP%\\apps\\git-with-openssh\\current\\mingw64\\share\\git\\git-for-windows.ico",
            "name" : "Git Bash",
            "padding" : "0, 0, 0, 0",
            "snapOnInput" : true,
            "startingDirectory" : ".",
            "useAcrylic" : true
        }
    ],
        {
            "acrylicOpacity" : 0.75,
            "background" : "#012456",
            "closeOnExit" : true,
            "colorScheme" : "One Half Dark",
            "commandline" : "powershell.exe",
            "cursorColor" : "#FFFFFF",
            "cursorShape" : "bar",
            "fontFace" : "Consolas",
            "fontSize" : 10,
            "guid" : "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
            "historySize" : 9001,
            "icon" : "ms-appx:///ProfileIcons/{61c54bbd-c2c6-5271-96e7-009a87ff44bf}.png",
            "backgroundImage" : "ms-appdata:///local/1537295612521.png",
            "backgroundImageOpacity" : 0.75,
            "backgroundImageStrechMode" : "fill",
            "name" : "Windows PowerShell",
            "padding" : "0, 0, 0, 0",
            "snapOnInput" : true,
            "startingDirectory" : ".",
            "useAcrylic" : true
        },
        {
            "acrylicOpacity" : 0.75,
            "closeOnExit" : true,
            "colorScheme" : "One Half Dark",
            "commandline" : "cmd.exe",
            "cursorColor" : "#FFFFFF",
            "cursorShape" : "bar",
            "fontFace" : "Consolas",
            "fontSize" : 10,
            "guid" : "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}",
            "historySize" : 9001,
            "icon" : "ms-appx:///ProfileIcons/{0caa0dad-35be-5f56-a8ff-afceeeaa6101}.png",
            "backgroundImage" : "ms-appdata:///local/1503827082075.png",
            "backgroundImageOpacity" : 0.75,
            "backgroundImageStrechMode" : "fill",
            "name" : "Command Prompt",
            "padding" : "0, 0, 0, 0",
            "snapOnInput" : true,
            "startingDirectory" : ".",
            "useAcrylic" : true
        },
        {
            "acrylicOpacity" : 0.75,
            "closeOnExit" : true,
            "colorScheme" : "flat-ui-v1",
            "commandline" : "cmd.exe /c set MSYS=winsymlinks:nativestrict&& set MSYS2_PATH_TYPE=inherit&& msys2 -i -l",
            "cursorColor" : "#FFFFFF",
            "cursorShape" : "bar",
            "fontFace" : "Consolas",
            "fontSize" : 10,
            "historySize" : 9001,
            "icon" : "%SCOOP%\\apps\\msys2\\current\\msys2.ico",
            "backgroundImage" : "ms-appdata:///local/1504637576364.png",
            "backgroundImageOpacity" : 0.75,
            "backgroundImageStrechMode" : "fill",
            "name" : "MSYS2",
            "padding" : "0, 0, 0, 0",
            "snapOnInput" : true,
            "startingDirectory" : ".",
            "useAcrylic" : true
        },
        {
            "acrylicOpacity" : 0.75,
            "closeOnExit" : true,
            "colorScheme" : "flat-ui-v1",
            "commandline" : "cmd.exe /c set MSYS=winsymlinks:nativestrict&& set MSYS2_PATH_TYPE=inherit&& mingw64 -i -l",
            "cursorColor" : "#FFFFFF",
            "cursorShape" : "bar",
            "fontFace" : "Consolas",
            "fontSize" : 10,
            "historySize" : 9001,
            "icon" : "%SCOOP%\\apps\\msys2\\current\\mingw64.ico",
            "backgroundImage" : "ms-appdata:///local/704387.png",
            "backgroundImageOpacity" : 0.75,
            "backgroundImageStrechMode" : "fill",
            "name" : "MinGW64",
            "padding" : "0, 0, 0, 0",
            "snapOnInput" : true,
            "startingDirectory" : ".",
            "useAcrylic" : true
        },
        {         
            "guid": "{a5a97cb8-8961-5535-816d-772efe0c6a3f}",
            "acrylicOpacity" : 0.75,
            "background" : "#012456",
            "closeOnExit" : true,
            "colorScheme" : "flat-ui-v1",
            "cursorColor" : "#FFFFFF",
            "cursorShape" : "bar",
            "fontFace" : "Consolas",
            "fontSize" : 10,
            "hidden": false,
            "name": "Arch",
            "icon" : "%SCOOP%\\apps\\archwsl\\current\\arch.ico",
            "backgroundImage" : "ms-appdata:///local/1507634976184.jpg",
            "backgroundImageOpacity" : 0.75,
            "backgroundImageStrechMode" : "fill",
            "source": "Windows.Terminal.Wsl",
            "padding" : "0, 0, 0, 0",
            "snapOnInput" : true,
            "startingDirectory" : ".",
            "useAcrylic" : true
        },
        {        
            "acrylicOpacity" : 0.75,
            "closeOnExit" : true,
            "colorScheme" : "flat-ui-v1",
            "commandline" : "\"%SCOOP%\\apps\\git-with-openssh\\current\\bin\\bash.exe\" -i -l",
            "cursorColor" : "#FFFFFF",
            "cursorShape" : "bar",
            "fontFace" : "Consolas",
            "fontSize" : 10,
            "historySize" : 9001,
            "icon" : "%SCOOP%\\apps\\git-with-openssh\\current\\mingw64\\share\\git\\git-for-windows.ico",
            "backgroundImage" : "ms-appdata:///local/1496315646560.png",
            "backgroundImageOpacity" : 0.75,
            "backgroundImageStrechMode" : "fill",
            "name" : "Git Bash",
            "padding" : "0, 0, 0, 0",
            "snapOnInput" : true,
            "startingDirectory" : ".",
            "useAcrylic" : true
        }
    ],
    "schemes" : 
    [
        {
            "background":"#000000",
            "black":"#000000",
            "blue":"#2980b9",
            "brightBlack":"#7f8c8d",
            "brightBlue":"#3498db",
            "brightCyan":"#1abc9c",
            "brightGreen":"#2ecc71",
            "brightPurple":"#9b59b6",
            "brightRed":"#e74c3c",
            "brightWhite":"#ecf0f1",
            "brightYellow":"#f1c40f",
            "cyan":"#16a085",
            "foreground":"#ecf0f1",
            "green":"#27ae60",
            "name":"flat-ui-v1",
            "purple":"#8e44ad",
            "red":"#c0392b",
            "white":"#ecf0f1",
            "yellow":"#f39c12"
        },
        {
            "background" : "#0C0C0C",
            "black" : "#0C0C0C",
            "blue" : "#0037DA",
            "brightBlack" : "#767676",
            "brightBlue" : "#3B78FF",
            "brightCyan" : "#61D6D6",
            "brightGreen" : "#16C60C",
            "brightPurple" : "#B4009E",
            "brightRed" : "#E74856",
            "brightWhite" : "#F2F2F2",
            "brightYellow" : "#F9F1A5",
            "cyan" : "#3A96DD",
            "foreground" : "#CCCCCC",
            "green" : "#13A10E",
            "name" : "Campbell",
            "purple" : "#881798",
            "red" : "#C50F1F",
            "white" : "#CCCCCC",
            "yellow" : "#C19C00"
        },
        {
            "background" : "#000000",
            "black" : "#000000",
            "blue" : "#000080",
            "brightBlack" : "#808080",
            "brightBlue" : "#0000FF",
            "brightCyan" : "#00FFFF",
            "brightGreen" : "#00FF00",
            "brightPurple" : "#FF00FF",
            "brightRed" : "#FF0000",
            "brightWhite" : "#FFFFFF",
            "brightYellow" : "#FFFF00",
            "cyan" : "#008080",
            "foreground" : "#C0C0C0",
            "green" : "#008000",
            "name" : "Vintage",
            "purple" : "#800080",
            "red" : "#800000",
            "white" : "#C0C0C0",
            "yellow" : "#808000"
        },
        {
            "background" : "#282C34",
            "black" : "#282C34",
            "blue" : "#61AFEF",
            "Grey" : "#FFFFFF",
            "darkGrey" : "#FFFFFF",
            "brightBlack" : "#5A6374",
            "brightBlue" : "#61AFEF",
            "brightCyan" : "#56B6C2",
            "brightGreen" : "#98C379",
            "brightPurple" : "#C678DD",
            "brightRed" : "#E06C75",
            "brightWhite" : "#DCDFE4",
            "brightYellow" : "#E5C07B",
            "cyan" : "#56B6C2",
            "foreground" : "#DCDFE4",
            "green" : "#98C379",
            "name" : "One Half Dark",
            "purple" : "#C678DD",
            "red" : "#E06C75",
            "white" : "#DCDFE4",
            "yellow" : "#E5C07B"
        },
        {
            "background" : "#FAFAFA",
            "black" : "#383A42",
            "blue" : "#0184BC",
            "brightBlack" : "#4F525D",
            "brightBlue" : "#61AFEF",
            "brightCyan" : "#56B5C1",
            "brightGreen" : "#98C379",
            "brightPurple" : "#C577DD",
            "brightRed" : "#DF6C75",
            "brightWhite" : "#FFFFFF",
            "brightYellow" : "#E4C07A",
            "cyan" : "#0997B3",
            "foreground" : "#383A42",
            "green" : "#50A14F",
            "name" : "One Half Light",
            "purple" : "#A626A4",
            "red" : "#E45649",
            "white" : "#FAFAFA",
            "yellow" : "#C18301"
        },
        {
            "background" : "#002B36",
            "black" : "#073642",
            "blue" : "#268BD2",
            "brightBlack" : "#002B36",
            "brightBlue" : "#839496",
            "brightCyan" : "#93A1A1",
            "brightGreen" : "#586E75",
            "brightPurple" : "#6C71C4",
            "brightRed" : "#CB4B16",
            "brightWhite" : "#FDF6E3",
            "brightYellow" : "#657B83",
            "cyan" : "#2AA198",
            "foreground" : "#839496",
            "green" : "#859900",
            "name" : "Solarized Dark",
            "purple" : "#D33682",
            "red" : "#DC322F",
            "white" : "#EEE8D5",
            "yellow" : "#B58900"
        },
        {
            "background" : "#FDF6E3",
            "black" : "#073642",
            "blue" : "#268BD2",
            "brightBlack" : "#002B36",
            "brightBlue" : "#839496",
            "brightCyan" : "#93A1A1",
            "brightGreen" : "#586E75",
            "brightPurple" : "#6C71C4",
            "brightRed" : "#CB4B16",
            "brightWhite" : "#FDF6E3",
            "brightYellow" : "#657B83",
            "cyan" : "#2AA198",
            "foreground" : "#657B83",
            "green" : "#859900",
            "name" : "Solarized Light",
            "purple" : "#D33682",
            "red" : "#DC322F",
            "white" : "#EEE8D5",
            "yellow" : "#B58900"
        }
    ]
}

@ Restia666Ashdoll Спасибо! это сработало, но каждый раз появляется всплывающее окно:

Capture

@foremtehan Поскольку вы не используете msys2, mingw64, arch и git bash, они вам не нужны. Теперь попробуйте это в профилях для Ubuntu.

        {         
            "guid": "{c6eaf9f4-32a7-5fdc-b5cf-066e8a4b1e40}",
            "acrylicOpacity" : 0.75,
            "background" : "#012456",
            "closeOnExit" : true,
            "colorScheme" : "flat-ui-v1",
            "cursorColor" : "#FFFFFF",
            "cursorShape" : "bar",
            "fontFace" : "Consolas",
            "fontSize" : 10,
            "hidden": false,
            "name": "Ubuntu",
            "source": "Windows.Terminal.Wsl",
            "padding" : "0, 0, 0, 0",
            "snapOnInput" : true,
            "startingDirectory" : ".",
            "useAcrylic" : true
        }

Убедитесь, что в конечном разделе профиля нет запятой

Я автоматизировал весь процесс в один bat-файл, который вам нужно запустить как администратор.
Добавить Windows Terminal в context menu.zip
Вам все равно нужно изменить начальный каталог в profiles.json на "startingDiretory" : ".",

Предупреждение: есть ошибка при вводе, вместо этого следует использовать "startingDirectory" : "." .

Это отлично работает, если вы прямо сейчас откроете здесь ...
Единственная проблема, которую я заметил, заключается в том, что если вы обычно открываете терминал ... каталог по умолчанию - system32 ... есть ли способ переопределить и использовать папку пользователя при обычном открытии?

Привет! У меня тоже была эта проблема. Быстрое и грязное решение - добавить команду cd в ваш файл .bashrc в терминале WSL.
эхо 'cd ~' >> ~ / .bashrc

Это сводит на нет всю цель этого потока, поскольку он всегда будет в каталоге '~', независимо от того, где вы открываете терминал. Просто введите cd ~ после открытия терминала в wsl / msys2 / mingw64 / git bash.

Я автоматизировал весь процесс в один bat-файл, который вам нужно запустить как администратор.
Добавить Windows Terminal в context menu.zip
Вам все равно нужно изменить начальный каталог в profiles.json на "startingDiretory" : ".",

Предупреждение: есть ошибка при вводе, вместо этого следует использовать "startingDirectory" : "." .

Это отлично работает, если вы прямо сейчас откроете здесь ...
Единственная проблема, которую я заметил, заключается в том, что если вы обычно открываете терминал ... каталог по умолчанию - system32 ... есть ли способ переопределить и использовать папку пользователя при обычном открытии?

Привет! У меня тоже была эта проблема. Быстрое и грязное решение - добавить команду cd в ваш файл .bashrc в терминале WSL.
эхо 'cd ~' >> ~ / .bashrc

Это сводит на нет всю цель этого потока, поскольку он всегда будет в каталоге '~', независимо от того, где вы открываете терминал. Просто введите cd ~ после открытия терминала в wsl / msys2 / mingw64 / git bash.

Это также установит каталог запуска на «~», когда вы нажмете «Открыть терминал Windows здесь». Вы можете просто добавить условие if.
if [ "$PWD" = "/mnt/c/Windows/System32" ]; then cd ~ fi

@ Restia666Ashdoll и @musm , выйдите из системы и снова войдите в систему после копирования файла ico в папку LocalAppData. После этого появится значок.

image

Как вы добавили опцию «Открыть с помощью кода»?

@ Restia666Ashdoll и @musm , выйдите из системы и снова войдите в систему после копирования файла ico в папку LocalAppData. После этого появится значок.
image

Как вы добавили опцию «Открыть с помощью кода»?

когда вы устанавливаете код, он спрашивает вас, хотите ли вы добавить оболочку, открытую с помощью кода

Для тех, кто установил терминал из магазина Windows, команда:

explorer.exe shell:appsFolder\Microsoft.WindowsTerminal_8wekyb3d8bbwe!App

Терминал Windows также добавляет к пути wt.exe , что делает приведенный выше фрагмент, подверженный ошибкам, избыточным.

Я приветствую работу всех здесь, но я просто хочу предложить более простое решение, которое подойдет мне и, возможно, многим из вас тоже:

ВАЖНАЯ ПОДГОТОВКА: Убедитесь, что в вашем файле настроек терминала Windows профиль оболочки по умолчанию содержит "startingDirectory": ".", что означает "начать в текущем рабочем каталоге". (Если вы пропустите этот шаг, Windows Terminal проигнорирует рабочий каталог и всегда будет запускаться в вашем домашнем каталоге.)

Теперь по инструкции:

  1. Перейдите в какую-нибудь забавную папку в проводнике!
  2. Нажмите Ctrl-L, введите wt и нажмите Enter. Это оно! Готово! Терминал Windows открывается в папке, которую вы просматриваете.

Текст, выделенный жирным шрифтом выше, представляет собой настоящую инструкцию. Хе-хе. Это оно!

Мне не нужен пункт контекстного меню. Довольно редко мне нужно открывать терминал в текущем каталоге, и мне достаточно Ctrl-L, wt , Enter. Это супер быстро и эз.

@VideoPlayerCode Отличное решение! Большое спасибо!

@VideoPlayerCode Спасибо за отличный совет! однако это не решает проблему «запуск от имени администратора».

Если кто-то получит следующую ошибку после использования решения @yanglr
explorer_error

Вы можете использовать весь путь вместо% LOCALAPPDATA%:

Так что вместо
[HKEY_CLASSES_ROOT \ Directory \ Background \ shellwtcommand]
@ = "% LOCALAPPDATA% \ Microsoft \ WindowsApps \ wt.exe"

Используйте (с вашим именем пользователя вместо thull):
[HKEY_CLASSES_ROOT \ Directory \ Background \ shellwtcommand]
@ = "" C: \ Users \ thullAppData \ Local \ Microsoft \ WindowsAppswt.exe ""

@ ad1tyawagh Рад, что помог тебе! :-)

@lllopo Я хотел бы помочь, но похоже, что «Запуск от имени администратора» невозможен в приложениях Магазина Windows (я установил Терминал Windows через Chocolatey прямо из установщика, но это все еще приложение Магазина Windows).

Вот моя текущая настройка:

  • PowerShell - моя оболочка по умолчанию.
  • Моя конфигурация PowerShell содержит следующие дополнительные строки:
function EditProfile { notepad "$profile" }
function GoAdmin { start-process pwsh –verb runAs }

Когда вы вводите GoAdmin, появляется диалоговое окно с правами администратора, а затем PowerShell запускается от имени администратора в отдельном окне оболочки (не размещенном в Терминале Windows) в той папке, в которую вы были перешли. Это удобно и для меня достаточно, потому что я использую это только для шоколадных пакетов установки / обновления. На самом деле не нужны были права администратора ни для чего другого.

Но для вас я хотел попытаться улучшить его, чтобы иметь возможность запускать сам Терминал Windows с правами администратора. Однако это не удается:

# Works but not admin rights:
function GoAdmin { start-process "$env:LOCALAPPDATA\Microsoft\WindowsApps\wt.exe" }

function GoAdmin { start-process explorer.exe shell:appsFolder\Microsoft.WindowsTerminal_8wekyb3d8bbwe!App }

# Fails with "This command cannot be run due to the error: The file cannot be accessed by the system.":
function GoAdmin { start-process "$env:LOCALAPPDATA\Microsoft\WindowsApps\wt.exe" -verb runAs }

# Successfully launches explorer.exe as admin, which in turn launches Windows Terminal as non-admin, meh:
function GoAdmin { start-process explorer.exe shell:appsFolder\Microsoft.WindowsTerminal_8wekyb3d8bbwe!App -verb runAs }

Поэтому, если нет способа исправить ошибку «Системный доступ к файлу недоступен», нет способа запустить Терминал Windows от имени администратора через сценарии PowerShell. Возможно, кто-то придумает способ. (Изменить: похоже, что причина неудачного запуска wt качестве администратора заключается в том, что Терминал Windows установлен как пользователь без прав администратора и, следовательно, не может быть найден пользователем с правами администратора. По крайней мере, так я понимаю это сообщение . )

Если нет, я надеюсь, вам по крайней мере понравится представленная мной здесь команда GoAdmin , которая успешно запускает отдельное окно PowerShell от имени администратора. Мне этого достаточно для администрирования шоколадных пакетов, поэтому я не особо возражаю, что это не окно Windows Terminal ... (Также очень полезно, что оно не использует Windows Terminal, потому что это означает «права администратора» оболочка визуально отличается, что является хорошим напоминанием о том, что не следует использовать ее для обычной работы, поскольку права администратора опасны и распространяются на все программы, которые вы запускаете через оболочку, поэтому не должны использоваться небрежно.)

PS: Замените pwsh на powershell если вы используете устаревшую встроенную «Windows PowerShell». Вместо этого я использую PowerShell Core 6 с https://github.com/PowerShell/PowerShell (устанавливается через choco install powershell-core ).

Еще один совет: я закрепил Windows Terminal в крайнем левом положении на панели задач. Таким образом, я могу нажать Win + 1, чтобы мгновенно запустить его (или сфокусировать его, если он уже запущен). Очень удобно. Это также означает, что если я действительно хочу, чтобы сам терминал Windows запускался от имени администратора, я могу просто щелкнуть правой кнопкой мыши значок на панели задач, затем щелкнуть правой кнопкой мыши «Терминал Windows» в появившемся меню и, наконец, «Запуск от имени администратора»).

Последний совет: после установки для вашего startDirectory значения «.» Терминал Windows всегда будет открываться в папке system32, если вы запускаете его с помощью ярлыка (например, из закрепленной панели задач или через меню «Пуск»; но _не_ через Win + R или через проводник ( последние методы работают исправно)). Но есть быстрый способ попасть в домашнюю папку: просто введите cd и нажмите Enter, чтобы всегда идти прямо домой.

Другой способ - установить команду sudo из Scoop
scoop install sudo
http://blog.lukesampson.com/sudo-for-windows
Помимо возможности запускать команды с повышенными привилегиями, вы также можете запустить сеанс PowerShell / командной строки с повышенными привилегиями с помощью команды sudo powershell или sudo cmd .

@ Restia666Ashdoll Как упоминалось в моем ответе, нет необходимости в сторонних командах "sudo". PowerShell имеет встроенный sudo: https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.management/start-process?view=powershell-6#examples

Пример 5: Запустите PowerShell от имени администратора

В этом примере запускается PowerShell с помощью параметра «Запуск от имени администратора».

Start-Process -FilePath "powershell" -Verb RunAs

Я обернул это как GoAdmin в моем примере. Но кто-то может также обернуть его как функцию с именем «sudo» и заставить ее принимать любую команду.

Например, для вдохновения я хотел, чтобы команда touch легко создавала 0-байтовые пустые файлы, и я хотел, чтобы она принимала несколько аргументов для нескольких файлов одновременно. Поэтому я написал эту функцию PowerShell и поместил ее в свою конфигурацию, чтобы она всегда была доступна:

function touch() { for ($i=0; $i -le $args.length; $i++) { $name = $args[$i]; if ($name -ne $null -and $name.GetType().Name -eq "String") { $name = $name.Trim(); if ($name.length -gt 0) { New-Item -ItemType file "$name" } } } }

Что-то очень похожее можно было бы сделать, если бы вы хотели создать общую команду sudo .

Или просто используйте GoAdmin как показано выше ...

@VideoPlayerCode Эта команда может использоваться только для нескольких команд PowerShell. Вы не можете сделать что-то вроде sudo pip install httpie или sudo Install-Module oh-my-posh -Force . Черт возьми, вы даже можете использовать Chocolatey из обычного PowerShell, например sudo choco install mpv (хотя лично мне не нравится Chocolatey). Конечно, у sudo для Windows тоже есть ограничения.

@ Restia666Ashdoll Спасибо, вы подтолкнули меня написать команду "sudo", которую я объяснил выше. :-)

function sudo() {
    [string[]]$cmd = @("-command")
    for ($i=0; $i -le $args.length; $i++) {
        $val = $args[$i]
        if ($val -ne $null) {
            $cmd += [string]$val;
        }
    }
    if ($cmd.length -ge 2) {
        $cmd += "; pause"
        #Write-Host $cmd
        Start-Process pwsh -ArgumentList $cmd –Verb RunAs
    }
}

_ (Если кто-то использует обычный устаревший powershell который идет в комплекте с Windows, замените pwsh на powershell выше.) _

Запуск sudo choco install sysinternals в сеансе без прав администратора теперь будет выполнять эту команду в сеансе администратора.

Обратите внимание, что Start-Process в PowerShell не поддерживает создание подоболочки администратора, которые выводятся непосредственно внутри «хостовых» неадминистративных оболочек, поэтому он запускается во всплывающем окне и приостанавливается, чтобы вы могли прочитать результат перед закрытием этого окна. Достаточно хорошо для меня.

Я посмотрел https://github.com/lukesampson/psutils/blob/master/sudo.ps1 (сценарий, который вы предложили), но мне показалось, что вызывать функции ядра для присоединения вывода администратора немного неприятно. subprocess в работающий терминал и беспокоясь о « утечке» небезопасных привилегий в хост-процесс или обо всех эксплойтах, которые становятся возможными, когда ввод / вывод процесса администратора принадлежит процессу, не являющемуся администратором (yikes). На https://github.com/noseratio/choco/tree/master/wsudo был еще один wsudo, но я особо не разбирался в нем. Вместо этого я просто написал свою версию.

Еще раз спасибо за толчок. Приятно иметь команду для быстрого выполнения одного действия от имени администратора. Моя команда GoAdmin опубликованная ранее, по-прежнему очень полезна для запуска отдельной консоли администратора, которая поддерживает ввод нескольких действий, как обычно. Но с этой новой командой выполнение отдельных команд теперь немного проще!

PS: Если кто-то задается вопросом, куда поместить эту или все другие мои функции, просто введите Write-Host $Profile (write-host является "echo" в PowerShell), чтобы увидеть путь к профилю, и создайте этот файл, если он отсутствует, а затем поместите туда функции и перезапустите PowerShell.

(Эти «ядерные» функции на самом деле являются официально поддерживаемыми этой командой консольными API-интерфейсами, просто они находятся в библиотеке с именем kernel32 (по устаревшим причинам).)

@ DHowett-MSFT Ага. В коде sudo.ps1 Люка Сэмпсона написано DllImport("kernel32.dll") , но вы говорите, что использовать эти функции для перенаправления вывода оболочки администратора в текущую оболочку совершенно нормально?

Откровенно говоря, он должен вести себя как sudo в системах unix. Практически каждый, кто использует Scoop, пользуется им. Это то, что я хочу - запустить команду с повышенными привилегиями внутри текущей оболочки. И это то, чего все желают, если бы Microsoft сделала правильное «sudo для Windows».

Спасибо за отличное обсуждение этой темы! Не могли бы вы отвлечься от обсуждения вещей, которых нет в контекстном меню в другом месте? Для sudo у нас # 1032

Да, некоторые люди спросили способ "sudo", и все немного пошло под откос. ;-)

@ DHowett-MSFT Извините, что ушел не по теме. Это просто возникло из-за перспективы запустить терминал в качестве администратора. Я остановлюсь.

Эй, нет проблем! Бывает со всеми. :улыбка:

Вот мое решение
Он действует так же, как PowerShell 7, а также может работать с правами администратора.
https://github.com/nt4f04uNd/wt-contextmenu
Там вы можете найти руководство по его реализации и все необходимые файлы.

@ nt4f04uNd Можете ли вы также добавить scoop install nicrmd в свое руководство?
https://github.com/ScoopInstaller/Main/blob/master/bucket/nircmd.json

@ Restia666Ashdoll готово

Я не вижу необходимости в замене приглашения open cmd.

В адресной строке щелкните его, введите wt.exe и нажмите Enter. Терминал Windows в текущем окне исследования в качестве CWD.

@ em00k У разных людей свои рабочие процессы, и это нормально: smile:

Это работает для меня https://github.com/microsoft/terminal/issues/1060#issuecomment -497539461, и чтобы разрешить начальный каталог для моей пользовательской папки, я создаю ярлык, нацеленный на мой '% USERPROFILE%', и помещаю его в мое меню "Пуск" и панель задач.

Но будет очень полезно, если мы сможем использовать параметр папки для открытия каталога в приложении wt.exe.

image

Вот что у меня сработало для 0.7.3451.0 (в исходный комментарий @yanglr необходимы некоторые изменения)

1) Скачайте официальный значок Windows Terminal и положите его куда-нибудь
https://raw.githubusercontent.com/microsoft/terminal/master/res/terminal.ico

2) Отредактируйте конфигурацию Windows Terminal. Сделайте профиль, который вы хотите открыть текущим каталогом по умолчанию.
Добавить
"startingDirectory": "."
в этот профиль, чтобы текущий каталог был начальным

3) Создайте и запустите файл wt.reg, заменив элементы в фигурных скобках реальными путями (помня двойные косые черты).

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt]
@="Windows Terminal Here"
"Icon"="{full_path_to_icon}\\terminal.ico"

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt\command]
@="C:\\Users\\{windows_user_directory}\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe"

(Подстановка HKEY_CLASSES_ROOT для HKEY_CURRENT_USER, если вы хотите изменить только текущего пользователя)

4) Тест. Он должен открыть каталог, в котором вы находитесь, при щелчке правой кнопкой мыши.
Я тестировал это только с cmd.exe в качестве профиля по умолчанию. Я не знаю, работает ли это для других типов профилей.

Capture

Открывает терминал Windows, начиная с папки, в которой я щелкнул правой кнопкой мыши

Capture

По крайней мере, измените его на HKCU, чтобы вы меняли только свою учетную запись пользователя.

Я придумал такое решение:
https://github.com/yangshuairocks/Open_in_Windows_Terminal

@VideoPlayerCode большое спасибо, человек решил мою проблему с терминалом Windows

@yangshuairocks Моя при этом мигает не один, а дважды, затем запрашивает администратора.

Я бы хотел «Открыть как новую вкладку в Терминале Windows».
Я не хочу, чтобы на моем рабочем столе было много окон Терминала.

PS
"startingDirectory": "." делает $PWD терминала, открытого из меню "Пуск" или панели задач C:\Windows\System32 .

Простое решение из всех приведенных здесь комментариев: https://github.com/plexcellmedia/open-microsoft-terminal-in-current-directory

На самом деле вам не нужно писать полный путь. Терминал присутствует в переменной PATH. Так что просто вызывайте команду wt где угодно.
Или вы можете вызвать само приложение UWP shell:AppsFolder\Microsoft.WindowsTerminal_8wekyb3d8bbwe!App

Начиная с выпуска v0.9.433.0, теперь вы можете передавать параметры командной строки, поэтому следующее работает с поддержкой нескольких профилей.

wt.reg :

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\shell\wt (Command)]
@="Open Terminal (Command)"
[HKEY_CLASSES_ROOT\Directory\shell\wt (Command)\command]
@="C:\\Users\\Sean\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe new-tab -d \"%1\" -p Command"

[HKEY_CLASSES_ROOT\Directory\shell\wt (PowerShell)]
@="Open Terminal (PowerShell)"
[HKEY_CLASSES_ROOT\Directory\shell\wt (PowerShell)\command]
@="C:\\Users\\Sean\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe new-tab -d \"%1\" -p PowerShell"

[HKEY_CLASSES_ROOT\Directory\shell\wt (Git Bash)]
@="Open Terminal (Git Bash)"
[HKEY_CLASSES_ROOT\Directory\shell\wt (Git Bash)\command]
@="C:\\Users\\Sean\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe new-tab -d \"%1\" -p \"Git Bash\""

[HKEY_CLASSES_ROOT\Directory\shell\wt (Ubuntu Bash)]
@="Open Terminal (Ubuntu Bash)"
[HKEY_CLASSES_ROOT\Directory\shell\wt (Ubuntu Bash)\command]
@="C:\\Users\\Sean\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe new-tab -d \"%1\" -p \"Ubuntu Bash\""

[HKEY_CLASSES_ROOT\Directory\shell\wt (Ubuntu Zsh)]
@="Open Terminal (Ubuntu Zsh)"
[HKEY_CLASSES_ROOT\Directory\shell\wt (Ubuntu Zsh)\command]
@="C:\\Users\\Sean\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe new-tab -d \"%1\" -p \"Ubuntu Zsh\""

profiles.json :

{
    "$schema": "https://aka.ms/terminal-profiles-schema",
    "defaultProfile": "{e5beb15e-da5c-4df7-815c-b0b0a865ef3f}",
    "initialRows": 50,
    "tabWidthMode": "titleLength",

    "profiles": {
        "defaults": {
            "cursorShape": "filledBox",
            "experimental.retroTerminalEffect": false,
            "fontFace": "Fira Code",
            "fontSize": 10,
            "padding": "2, 2, 2, 2",
            "suppressApplicationTitle": true
        },
        "list": [
            {
                "backgroundImage": "ms-appdata:///local/ubuntu.png",
                "backgroundImageAlignment": "bottomRight",
                "backgroundImageOpacity": 0.25,
                "backgroundImageStretchMode": "none",
                "commandline": "wsl.exe -d Ubuntu-18.04 --exec zsh --login",
                "colorScheme": "Solarized Dark",
                "guid": "{e5beb15e-da5c-4df7-815c-b0b0a865ef3f}",
                "icon": "ms-appdata:///local/ubuntu.png",
                "name": "Ubuntu Zsh",
                "startingDirectory": "//wsl$/Ubuntu-18.04/home/sean",
                "tabTitle": "Zsh"
            },
            {
                "backgroundImage": "ms-appdata:///local/ubuntu.png",
                "backgroundImageAlignment": "bottomRight",
                "backgroundImageOpacity": 0.25,
                "backgroundImageStretchMode": "none",
                "commandline": "wsl.exe -d Ubuntu-18.04 --exec bash --login",
                "colorScheme": "Solarized Dark",
                "guid": "{c6eaf9f4-32a7-5fdc-b5cf-066e8a4b1e40}",
                "icon": "ms-appdata:///local/ubuntu.png",
                "name": "Ubuntu Bash",
                "source": "Windows.Terminal.Wsl",
                "startingDirectory": "//wsl$/Ubuntu-18.04/home/sean",
                "tabTitle": "Bash"
            },
            {
                "backgroundImage": "ms-appdata:///local/git-for-windows.png",
                "backgroundImageAlignment": "bottomRight",
                "backgroundImageOpacity": 0.25,
                "backgroundImageStretchMode": "none",
                "commandline": "C:\\Program Files\\Git\\bin\\bash.exe --login",
                "colorScheme": "Solarized Dark",
                "guid": "{78ccd05e-83d4-46c6-9a80-8865ff8ff720}",
                "icon" : "C:\\Program Files\\Git\\mingw64\\share\\git\\git-for-windows.ico",
                "name": "Git Bash",
                "startingDirectory": "%USERPROFILE%",
                "tabTitle": "Bash"
            },
            {
                "backgroundImage": "ms-appdata:///local/powershell.png",
                "backgroundImageAlignment": "bottomRight",
                "backgroundImageOpacity": 0.25,
                "backgroundImageStretchMode": "none",
                "commandline": "powershell.exe",
                "guid": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
                "name": "PowerShell",
                "tabTitle": "PS"
            },
            {
                "commandline": "cmd.exe",
                "guid": "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}",
                "name": "Command",
                "tabTitle": "Cmd"
            },
            {
                "acrylicOpacity": 0.9,
                "guid": "{b453ae62-4e3d-5e58-b989-0a998ec441b8}",
                "name": "Azure Shell",
                "source": "Windows.Terminal.Azure",
                "tabTitle": "Bash",
                "useAcrylic": true
            },
            {
                "guid": "{574e775e-4f2a-5b96-ac1e-a2962a402336}",
                "hidden": false,
                "name": "PowerShell Core",
                "source": "Windows.Terminal.PowershellCore"
            }
        ]
    },

    "schemes": [],

    "keybindings": []
}

@DHowett осталась только одна проблема ... он не использует повторно существующий экземпляр wt и не открывает новую вкладку.

@gitfool, а тот отслеживается # 4472: smile:

Вы можете сделать его _ немного_ более надежным, используя %1\. вместо простого %1 - прямо сейчас, если вы откроете его в корне диска, он не будет делать то, что вы ожидаете . Это # 4571

Не знаю почему, но @gitfool reg не сделал этого за меня. Если я передаю %V он работает, например

C:\Users\islevin\AppData\Local\Microsoft\WindowsApps\wt -p "cmd" -d "%V"

Отличная работа, ребята, для меня это почти идеально :)

Пункты контекстного меню великолепны, они открывают ожидаемую папку, отлично. Однако я запускаю Терминал Windows напрямую (например, из меню «Пуск»), начальный каталог - это моя домашняя папка Windows.

Есть ли способ сделать это значение по умолчанию для моей домашней папки WSL, не нарушая записи в контекстном меню?

@rfgamaral см. мой profile.json выше. Если в профиле задано значение по умолчанию startingDirectory , контекстное меню проводника переопределит его, в противном случае оно будет использоваться по умолчанию, как указано. Вам просто нужно заменить мой дистрибутив Linux и имя пользователя на свое.

@gitfool Это то, что у меня есть, но у меня не работает:

{
  "guid": "{58ad8b0c-3ef8-5f4d-bc6f-13e4c00f2530}",
  "name": "Debian (WSL)",
  "commandline": "wsl.exe -d Debian --exec zsh --login",
  "startingDirectory": "//wsl$/Debian/home/ricardo",
  "acrylicOpacity": 1.0,
  "colorScheme": "Flat UI (tweaked)",
  "fontSize": 10,
  "hidden": false,
  "padding": "3, 2",
  "useAcrylic": true
}

@rfgamaral Я не вижу ничего плохого в вашей конфигурации. Существует ли ваш домашний каталог WSL или вы используете другой профиль при непосредственном запуске терминала?

Да, это так:

image

Нет, у меня только этот профиль WSL.

@rfgamaral файловая система Linux чувствительна к регистру, поэтому ваш профиль startingDirectory должен быть //wsl$/Debian/home/Ricardo .

@rfgamaral файловая система Linux чувствительна к регистру, поэтому ваш профиль startingDirectory должен быть //wsl$/Debian/home/Ricardo .

Круто, это исправлено! Огромное спасибо :)

Возможно, это выходит за рамки данной проблемы, а может и нет, я все равно спрошу об этом ... Предполагая, что установка описана выше, @gitfool , у меня есть эта папка Windows C:\Users\Ricardo\Workspace а затем у меня есть символическая ссылка внутри WSL как ~/ Workspace -> /c/Users/AmaralR/Workspace/ .

Как было бы здорово, если бы щелчок правой кнопкой мыши по папке Workspace внутри проводника открывал ~/Workspace вместо /c/Users/AmaralR/Workspace/ ? Вы, ребята, думаете, что этого можно достичь хотя бы отдаленно?

У меня есть одна проблема. Команда Rick click появляется только тогда, когда я щелкаю правой кнопкой мыши по папкам. Однако, когда я щелкаю правой кнопкой мыши пустое место в папке, терминальная запись не появляется (см. Gif), хотя появляются VS Code и мой дистрибутив WSL по умолчанию (Pengwin). Я установил Terminal, VS Code и Pengwin в режим расширенной оболочки (удерживая Shift).

GIF

Моя текущая конфигурация:
`` Редактор реестра Windows версии 5.00

[HKEY_CLASSES_ROOT \ Directory \ shellwt]
@ = "Откройте терминал здесь
"Расширенный" = ""
"Icon" = "D: \ OneDrive \ _Apps \ .config \ .icons \ terminal.ico"

[HKEY_CLASSES_ROOT \ Directory \ shellwtcommand]
@ = "C: \ Users \ steve \ AppData \ Local \ Microsoft \ WindowsApps \ wt.exe новая вкладка -d"% 1 "-p" Pengwin "" `` `

@Kalaschnik Вам также понадобится одна запись в HKCR \ Directory \ Background \ Shell \ WindowsTerminal Here

См. Https://github.com/shanselman/WindowsTerminalHere/pull/3/files

Резюмируя всю вышеперечисленную мудрость:
https://gist.github.com/Kalaschnik/faea6d77494d2e095ab992a58ba94562

Когда я пытаюсь запустить вкладку cmd в терминале, я получаю

[ошибка 0x8007010b при запуске cmd.exe]

У меня есть одна проблема. Команда Rick click появляется только тогда, когда я щелкаю правой кнопкой мыши по папкам.

Я не уверен, в чем проблема, которая вызывает это, но вы можете проверить этот репозиторий, чтобы сделать его более похожим на PowerShell

Gif demo

Привет всем,
Реализую простой скрипт для добавления контекстного меню.
Он работает для меня с версией терминала Windows 0.9.433.0

Спасибо @ nt4f04uNd и другим всем, кто меня вдохновляет

Репо: Windows-терминал-контекстное меню

Привет всем,
Реализую простой скрипт для добавления контекстного меню.
Он работает для меня с версией терминала Windows 0.9.433.0

Спасибо @ nt4f04uNd и другим всем, кто меня вдохновляет

Репо: Windows-терминал-контекстное меню

Это действительно здорово !!! однако несколько примечаний:
https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_execution_policies?view=powershell-7
вам нужно установить-ExecutionPolicy на Unrestricted, чтобы запустить его.

Кроме того, это кажется сломанным:

Copy-Item : The filename, directory name, or volume label syntax is incorrect.
At D:\Jeff\Documents\Windows-terminal-context-menu\SetupContextMenu.ps1:25 char:1
+ Copy-Item -Path "$PSScriptRoot\icons\*.ico" -Destination $resourcePat ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Copy-Item], IOException
    + FullyQualifiedErrorId : System.IO.IOException,Microsoft.PowerShell.Commands.CopyItemCommand

this dir needs to be created either prior to or as part of the execution:
$env:LOCALAPPDATA\WindowsTerminalContextIcons\

Также там говорится:

PS D:\Jeff\Documents\Windows-terminal-context-menu> .\SetupContextMenu.ps1
Add top layer menu (shell) => Registry::HKEY_CLASSES_ROOT\Directory\shell\WindowsTerminal
Add top layer menu (background) => Registry::HKEY_CLASSES_ROOT\Directory\shell\WindowsTerminal
Add new entry Git Bash
Add new entry Command Prompt
Add new entry PowerShell
Add new entry Azure Cloud Shell

но на самом деле не создает его должным образом (его недостающие значки и мой Git Bash отсутствуют, потому что у меня нет в нем скрытого ключа):
image

Добавлено в глобальные определения:
$gitbashIcoFileName = "git-bash.ico"

и это после строки 101:

        elseif ($commandLine -like "*Git*bash.exe*") {
            $icoPath = $gitbashIcoFileName
        }

Похоже, ему просто не нравится загружать значки из:
% LOCALAPPDATA% \ WindowsTerminalContextIcons \
... потому что это нормально выглядит в разделе реестра.

Вместо этого я изменил эту строку на:
$resourcePath = "$PSScriptRoot\icons\"

и удалены:
Copy-Item -Path "$PSScriptRoot\icons\*.ico" -Destination $resourcePath

Проблема в том, что если папка не существует, значки не могут быть скопированы, просто добавление mkdir $resourcePath до того, как Copy-Item решит этот бит. Для этого я создал проблему с вашим репо. Кроме того, в некоторых сценариях, похоже, возникает проблема с анализом профиля. В любом случае, спасибо за сценарий!

Привет @Nomelas

Благодарю за ваш ответ.
Я исправил проблему отсутствия значка. Просто переустановите его снова и повторно войдите в систему.
Я не предпочитаю указывать в $ resourcePath расположение скрипта. Потому что пользователь может удалить папку установщика по любой причине, и тогда значок снова пропадет.

Во-вторых, не могли бы вы поделиться своим профилем на git bash? Потому что я не установил Git-bash на моем WT.
Мне нужен шаблон, чтобы установить правило.

Привет @Nomelas

Благодарю за ваш ответ.
Я исправил проблему отсутствия значка. Просто переустановите его снова и повторно войдите в систему.
Я не предпочитаю указывать в $ resourcePath расположение скрипта. Потому что пользователь может удалить папку установщика по любой причине, и тогда значок снова пропадет.

Во-вторых, не могли бы вы поделиться своим профилем на git bash? Потому что я не установил Git-bash на моем WT.
Мне нужен шаблон, чтобы установить правило.

Я устранил все проблемы и отправляю PR

@Nomelas , у
This file does not have a program associated with it for performing this action. Please install an app or, if one is already installed, create an association in the Default Apps Settings page.

Это фрагмент реестра:
image

Ребята, я знаю, что немного опоздала на эту вечеринку, но как насчет использования OpenHere ? 😉

Запустите PowerShell с повышенными разрешениями и введите:

Install-Module OpenHere
Set-OpenHereShortcut -ShortcutType:WindowsTerminal

👍 кому это нравится!

@ nt4f04uNd Возможно, вам стоит сначала прочитать документацию, особенно примечания

я, возможно, пропустил это, но настройки начальной директории на "." открывает каталог установки терминала Windows при открытии из меню «Пуск» и открывает здесь контекстное меню. Открывается в каталоге, в котором вы находитесь. При использовании «% USERPROFILE%» открывается в обоих направлениях только в моем пользовательском каталоге.

Есть ли способ заставить работать здесь open и по-прежнему иметь "% USERPROFILE%" в качестве пути по умолчанию при открытии из меню "Пуск"? открыть здесь не работает с "% USERPROFILE%".

@eskoONE и другие, да, это так!
Есть решение с использованием аргумента -d. Посетите https://github.com/nt4f04und/wt-contextmenu

Ребята, я знаю, что немного опоздала на эту вечеринку, но как насчет использования OpenHere ? 😉

Запустите PowerShell с повышенными разрешениями и введите:

Install-Module OpenHere
Set-OpenHereShortcut -ShortcutType:WindowsTerminal

👍 кому это нравится!

Оно работает!! Спасибо!

Это проще простого - добавить одну команду в контекстное меню папки. Это простой ключ реестра.

Например (а затем вы также можете добавить значок и т. Д.)

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Classes\Directory\Background\shell\Open Thing Here\command]
@="C:\\thing.exe \"%1\""

Как я могу добавить возможность открывать этот файл thing.exe только когда я нажимаю клавишу SHIFT - например, с опцией "Окно PowerShell"

Ребята, я знаю, что немного опоздала на эту вечеринку, но как насчет использования OpenHere ? 😉

Запустите PowerShell с повышенными разрешениями и введите:

Install-Module OpenHere
Set-OpenHereShortcut -ShortcutType:WindowsTerminal

👍 кому это нравится!

Как мне его удалить?

Ребята, я знаю, что немного опоздала на эту вечеринку, но как насчет использования OpenHere ? 😉
Запустите PowerShell с повышенными разрешениями и введите:

Install-Module OpenHere
Set-OpenHereShortcut -ShortcutType:WindowsTerminal

👍 кому это нравится!

Как мне его удалить?

Из документации :
Remove-OpenHereShortcut -ShortcutType:WindowsTerminal

Привет всем,
Реализую простой скрипт для добавления контекстного меню.
Он работает для меня с версией терминала Windows 0.9.433.0
Спасибо @ nt4f04uNd и другим всем, кто меня вдохновляет
Репо: Windows-терминал-контекстное меню

Это действительно здорово !!! однако несколько примечаний:
https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_execution_policies?view=powershell-7
вам нужно установить-ExecutionPolicy на Unrestricted, чтобы запустить его.

Кроме того, это кажется сломанным:

Copy-Item : The filename, directory name, or volume label syntax is incorrect.
At D:\Jeff\Documents\Windows-terminal-context-menu\SetupContextMenu.ps1:25 char:1
+ Copy-Item -Path "$PSScriptRoot\icons\*.ico" -Destination $resourcePat ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Copy-Item], IOException
    + FullyQualifiedErrorId : System.IO.IOException,Microsoft.PowerShell.Commands.CopyItemCommand

this dir needs to be created either prior to or as part of the execution:
$env:LOCALAPPDATA\WindowsTerminalContextIcons\

Также там говорится:

PS D:\Jeff\Documents\Windows-terminal-context-menu> .\SetupContextMenu.ps1
Add top layer menu (shell) => Registry::HKEY_CLASSES_ROOT\Directory\shell\WindowsTerminal
Add top layer menu (background) => Registry::HKEY_CLASSES_ROOT\Directory\shell\WindowsTerminal
Add new entry Git Bash
Add new entry Command Prompt
Add new entry PowerShell
Add new entry Azure Cloud Shell

но на самом деле не создает его должным образом (его недостающие значки и мой Git Bash отсутствуют, потому что у меня нет в нем скрытого ключа):
image

В этом скрипте есть некоторые ошибки, потому что он сделан для старой версии Windows Terminal, я сделал вилку, чтобы исправить эти ошибки.

https://github.com/KiritoDv/Windows-terminal-context-menu

image

Привет @KiritoDv
Не могли бы вы проверить, какая у вас версия терминала Windows?
Я использую последнюю версию v0.9.433.0 и успешно устанавливаю.

Спасибо ~

У меня последняя версия, но когда я обновляю файл моих профилей, он такой же, как и в старой версии профилей, извините за это, по крайней мере, изменение работает с тем, у кого такая же ошибка

Престижность Кирито за создание сценария, он действительно хорош. Есть ли шанс, что это будет поддержано WT в будущем?

@RonaldOlsthoorn Безусловно, есть _ шанс_ - поэтому этот вопрос все еще открыт 😄

Если бы кто-то мог выяснить, как установить эти записи контекстного меню из упакованного приложения и иметь возможность динамически обновлять записи (чтобы отразить список профилей), тогда мы, безусловно, были бы заинтересованы в рассмотрении PR 😉 До тех пор это только в нашем бэклоге.

Возможно, люди, которые сделали это для Pengwin, могли бы сделать это и для Терминала (или, по крайней мере, посоветовать, что они сделали, чтобы он заработал).

Привет всем,
Реализую простой скрипт для добавления контекстного меню.
Он работает для меня с версией терминала Windows 0.9.433.0
Спасибо @ nt4f04uNd и другим всем, кто меня вдохновляет
Репо: Windows-терминал-контекстное меню

Это действительно здорово !!! однако несколько примечаний:
https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_execution_policies?view=powershell-7
вам нужно установить-ExecutionPolicy на Unrestricted, чтобы запустить его.
Кроме того, это кажется сломанным:

Copy-Item : The filename, directory name, or volume label syntax is incorrect.
At D:\Jeff\Documents\Windows-terminal-context-menu\SetupContextMenu.ps1:25 char:1
+ Copy-Item -Path "$PSScriptRoot\icons\*.ico" -Destination $resourcePat ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Copy-Item], IOException
    + FullyQualifiedErrorId : System.IO.IOException,Microsoft.PowerShell.Commands.CopyItemCommand

this dir needs to be created either prior to or as part of the execution:
$env:LOCALAPPDATA\WindowsTerminalContextIcons\

Также там говорится:

PS D:\Jeff\Documents\Windows-terminal-context-menu> .\SetupContextMenu.ps1
Add top layer menu (shell) => Registry::HKEY_CLASSES_ROOT\Directory\shell\WindowsTerminal
Add top layer menu (background) => Registry::HKEY_CLASSES_ROOT\Directory\shell\WindowsTerminal
Add new entry Git Bash
Add new entry Command Prompt
Add new entry PowerShell
Add new entry Azure Cloud Shell

но на самом деле не создает его должным образом (его недостающие значки и мой Git Bash отсутствуют, потому что у меня нет в нем скрытого ключа):
image

В этом скрипте есть некоторые ошибки, потому что он сделан для старой версии Windows Terminal, я сделал вилку, чтобы исправить эти ошибки.

https://github.com/KiritoDv/Windows-terminal-context-menu

image

Престижность вам за создание сценария, работает как шарм.

Примечание по реализации: манифест приложения PowerToys показывает, как объявлять контекстные меню проводника файлов для файлов и папок. Я не уверен, что для этого потребуется регистрация на COM-сервере ...

Обратите внимание на совпадение с # 2189 - однако, оно кажется скорее параллельным, чем дополнительным.

<Extensions>
        ...
        <com:Extension Category="windows.comServer">
          <com:ComServer>
            <com:ExeServer Executable="modules\PowerRenameUWPUI.exe" DisplayName="PowerRenameUWPUI">
              <com:Class Id="0440049F-D1DC-4E46-B27B-98393D79486B"/>
            </com:ExeServer>
          </com:ComServer>
        </com:Extension>
        <desktop4:Extension Category="windows.fileExplorerContextMenus">
          <desktop4:FileExplorerContextMenus>
            <desktop4:ItemType Type="*">
              <desktop4:Verb Id="FilePowerRename" Clsid="0440049F-D1DC-4E46-B27B-98393D79486B" />
            </desktop4:ItemType>
            <desktop5:ItemType Type="Directory">
              <desktop5:Verb Id="DirectoryPowerRename" Clsid="0440049F-D1DC-4E46-B27B-98393D79486B" />
            </desktop5:ItemType>
          </desktop4:FileExplorerContextMenus>
        </desktop4:Extension>

Я не отследил исходный код.
Не совсем уверен, что за функция обратного вызова profiles.json modified🤔.

Моя работала после того, как потратила много времени на чтение комментариев людей.

Шаги по добавлению терминала Windows сюда в контекстное меню, вызываемое правой кнопкой мыши:
1) Загрузите терминал Windows из магазина Microsoft

2) На https://github.com/yanglr/WindowsDevTools/blob/master/awosomeTerminal/icons/wt_32.ico
значок загрузки с именем файла wt_32.ico

3) Откройте CMD и запустите эту команду mkdir "%USERPROFILE%\AppData\Local\terminal"

4) Скопируйте значок терминала Windows (который вы загрузили на шаге 2) в папку C: \ Users [ваше-имя-пользователя] AppData \ Local \ terminal
(Пример для моего значка копирования: C: \ Users \ DellAppData \ Local \ terminal)

5) Откройте notpad и напишите ниже код

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt]
@="Windows terminal here"
"Icon"=C:\\Users\\[your-user-name]\\AppData\\Local\\terminal\\wt_32.ico

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt\command]
@="C:\\Users\\[your-user-name]\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe"

6) Примечание:
В [your-user-name] напишите ваше имя пользователя.
например, мое имя пользователя - Dell, мои пути будут

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt]
@="Windows terminal here"
"Icon"=C:\\Users\\DELL\\AppData\\Local\\terminal\\wt_32.ico

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt\command]
@="C:\\Users\\DELL\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe"

Сохраните файл как wt.reg на рабочем столе (или в любом другом месте на вашем ПК) и откройте его.
(нажмите ОК все)
7) Протестируйте его, щелкнув правой кнопкой мыши => Выберите терминал Windows здесь
[Откроется терминал Windows (предварительная версия)] 👍

Он по-прежнему не работает при добавлении контекстного меню на диски в проводнике. Он открывает WT на секунду, а затем закрывает его. Любые подсказки, как решить эту конкретную проблему?

@ 4k3or3et Я не уверен, о чем вы имеете в виду, но работа @ atif-dev и других, таких как @ zadjii-msft, довольно избыточна, поскольку есть модуль Windows PowerShell, который полностью покрывает это, включая откат и настройку.

@ 4k3or3et Я не уверен, о чем вы имеете в виду, но работа @ atif-dev и других, таких как @ zadjii-msft, довольно избыточна, поскольку есть модуль Windows PowerShell, который полностью покрывает это, включая откат и настройку.

Точно так же, как вы добавляете пункты контекстного меню в HKEY_CLASSES_ROOT\Direcroty\shell вы также можете добавить их в HKEY_CLASSES_ROOT\Drive\shell . Вы получаете пункты контекстного меню, когда щелкаете правой кнопкой мыши по дискам в проводнике.

Проблема в том, что когда вы добавляете "C:\Users\PROFILE\AppData\Local\Microsoft\WindowsApps\wt.exe -d "%V" -p "Debian" который работает в случае папок, он не работает для дисков в проводнике. Затем WT открывается на секунду и по какой-то причине закрывается.

Мой вопрос: понял ли кто-нибудь, почему Windows Terminal не может обрабатывать "% V" в случае Drive?

Спасибо.

Ярлык должен быть %V\.

Ярлык должен быть %V\.

О чувак! Это круто!!!

Это работает для дисков и папок ...

Не могли бы вы быть таким добрым и объяснить мне «науку», стоящую за «% V»? Чем он отличается от обычного "% V"?

Так что это одна из тех «странных проблем». "%V" в корне диска заменяется на "C:\" . Большинство парсеров аргументов команд обрабатывают \" как " , потому что \ - это «escape-символ». Следовательно, он превращает путь из "C:\" в C:" (удаляя первую цитату и используя вторую).

Использование "%V\." приводит к расширению корня диска до "C:\\." , что совершенно законно.

Так что это одна из тех «странных проблем». "%V" в корне диска заменяется на "C:\" . Большинство парсеров аргументов команд обрабатывают \" как " , потому что \ - это «escape-символ». Следовательно, он превращает путь из "C:\" в C:" (удаляя первую цитату и используя вторую).

Использование "%V\." приводит к расширению корня диска до "C:\\." , что совершенно законно.

Понятно. Еще раз спасибо за помощь.

Я установил его через магазин, но Windows сообщает мне «Приложение не найдено», когда я помещаю wt.exe в качестве команды в раздел реестра. Если я изменю его на полный путь, то есть %LOCALAPPDATA%\Microsoft\WindowsApps\wt.exe , я получаю ошибку «Нет доступа» (неправильные права для этого элемента).

В настоящее время у меня есть команда, добавленная как cmd.exe /C start wt.exe , и это работает, хотя старое приглашение cmd мигает на экране при открытии wt.

Я установил его через магазин, но Windows сообщает мне «Приложение не найдено», когда я помещаю wt.exe в качестве команды в раздел реестра. Если я изменю его на полный путь, то есть %LOCALAPPDATA%\Microsoft\WindowsApps\wt.exe , я получаю ошибку «Нет доступа» (неправильные права для этого элемента).

В настоящее время у меня есть команда, добавленная как cmd.exe /C start wt.exe , и это работает, хотя старое приглашение cmd мигает на экране при открытии wt.

изменить через regedit% LOCALAPPDATA% на реальном адресе, например "C: \ Users \ [user] AppData \ Local"

а затем я добавил этот "startingDirectory": "%__CD__%" в profile.json

Я установил его через магазин, но Windows сообщает мне «Приложение не найдено», когда я помещаю wt.exe в качестве команды в раздел реестра. Если я изменю его на полный путь, то есть %LOCALAPPDATA%\Microsoft\WindowsApps\wt.exe , я получаю ошибку «Нет доступа» (неправильные права для этого элемента).
В настоящее время у меня есть команда, добавленная как cmd.exe /C start wt.exe , и это работает, хотя старое приглашение cmd мигает на экране при открытии wt.

изменить через regedit% LOCALAPPDATA% на реальном адресе, например "C: \ Users [пользователь] AppData \ Local"

а затем я добавил этот "startingDirectory": "%__CD__%" в profile.json

Спасибо, похоже, это действительно правильный подход с использованием расширенного пути вместо %LOCALAPPDATA% . Я использую "startingDirectory": "." также работает должным образом.

@ Wosser1sProductions просто использует эту cmd.exe /s /k pushd "%V" вместо любой другой команды.

Дело в том, чтобы открыть новый Терминал Windows (исполняемый файл wt.exe ) из контекстного меню. Значение по умолчанию для открытия обычной командной строки действительно cmd.exe /s /k pushd "%V" .

Вот решение.

Плохая вещь в reg-файле заключается в том, что вам нужно добавить конкретный пользовательский путь wt (поскольку UWP устанавливается для каждого пользователя) в контексте HKEY_CLASSES_ROOT. Я пытался заменить его на HKEY_CURRENT_USER, но у меня это не работает.

ЕСЛИ есть способ установить WT для всей системы в "глобальную" папку, было бы лучше.

Позвольте мне добавить сюда свой reg-файл, чтобы его мог использовать кто угодно:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt]
@="Windows Terminal Here"
"Icon"="E:\\Resimler\\ico\\terminal.ico"

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt\command]
@="D:\\WindowsApps\\Microsoft.WindowsTerminal_0.10.781.0_x64__8wekyb3d8bbwe\\WindowsTerminal.exe"

Первый @ - это текст, который появится в контекстном меню (_ "Терминал Windows здесь" _)
«Значок» - это путь к значку, который также можно увидеть в контекстном меню.
Второй @ - это путь к exe-файлу Терминала. вам нужно узнать, где это.

Настройте и вставьте этот код в текстовый файл и переименуйте его как _wt.reg_. Затем запустите его.

Затем откройте новый терминал Windows. Перейдите в настройки:
image

Здесь мы находимся в файле profiles.json.
Вставьте в него эти коды:


{
    "$schema": "https://aka.ms/terminal-profiles-schema",
    "defaultProfile": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
    "profiles":
    {
        "defaults":
        {
        },
        "list":
        [
            {
                "guid": "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}",
                "name": "cmd",
                "commandline": "cmd.exe",
                "hidden": false,
                "startingDirectory": "."
            },
            {
                "guid": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
                "name": "Windows PowerShell",
                "commandline": "powershell.exe",
                "hidden": false
            },
            {
                "guid": "{b453ae62-4e3d-5e58-b989-0a998ec441b8}",
                "hidden": false,
                "name": "Azure Cloud Shell",
                "source": "Windows.Terminal.Azure"
            },
            {
                "guid": "{2c4de342-38b7-51cf-b940-2309a097f518}",
                "hidden": false,
                "name": "Ubuntu",
                "source": "Windows.Terminal.Wsl"
            }
        ]
    },
    "schemes": [],
    "keybindings": []
}


это оно

вот мой сценарий реестра, он использует аргументы командной строки. Я настроил его для имен профилей по умолчанию CMD, Powershell и WSL Ubuntu с обычными запросами и запросами администратора. В отличие от большинства сценариев, которые я видел в этом выпуске, никаких изменений в файле profiles.json не требуется.
https://gist.github.com/OmegaRogue/9069405e7b0bf5e76f1c5d9c96f8b663

Ни один из этих вариантов меня не устраивает. Итак, я получил удар.

Я модифицировал решение @OmegaRogue . Мне не нравилось вложение, поэтому я попытался разделить админку и не админа в отдельные меню.

image

К сожалению, я не могу понять, как получить команды администратора на одном уровне. Вот что у меня есть:
image

Вот мой файл .reg
Я оставил несколько комментариев, чтобы помочь людям понять, какие разделы чем занимаются, и, возможно, кто-то может помочь исправить вложение администратора.

Ни один из этих вариантов меня не устраивает. Итак, я получил удар.

Я модифицировал решение @OmegaRogue . Мне не нравилось вложение, поэтому я попытался разделить админку и не админа в отдельные меню.

image

К сожалению, я не могу понять, как получить команды администратора на одном уровне. Вот что у меня есть:
image

Вот мой файл .reg
Я оставил несколько комментариев, чтобы помочь людям понять, какие разделы чем занимаются, и, возможно, кто-то может помочь исправить вложение администратора.

Я могу изменить свой файл, чтобы сделать это и удалить вложение администратора

@OmegaRogue Хороший, но я предполагаю, что значок главного меню умрет с версией (и поэтому путь WindowsTerminal.exe изменится). Может быть, было бы лучше заменить его на более доступный для всех значок.

Изменить: также, если вам удастся добавить параметры администратора (@ t-makaro) без проблем с вложением, было бы здорово.

Забавно, как @lllopo @OmegaRogue @ t-makaro @sundowatch и другие заново изобретают колесо.

Эти reg файлы снова и снова содержат одни и те же ошибки. Им не хватает отката или тестов. Они не работают с путями с символами, отличными от ASCII, такими как ě š č ř í é ý é ů или вам нужно изменить настройки вашего Терминала.

Взгляни вместо этого сюда .

Забавно, как @lllopo @OmegaRogue @ t-makaro @sundowatch и другие заново изобретают колесо.

Эти reg файлы снова и снова содержат одни и те же ошибки. Им не хватает отката или тестов. Они не работают с путями с символами, отличными от ASCII, такими как ě š č ř í é ý é ů или вам нужно изменить настройки вашего Терминала.

Взгляни вместо этого сюда .

Я знаю проблему, и в используемой мной версии ее нет, я только что опубликовал эту версию для удобства чтения, моя версия использует текст в шестнадцатеричной кодировке (2) вместо обычной строки

Затем люди забывают о побочном эффекте, если вы добавляете "startingDirectory": "." для работы с редактированием реестра, которое добавляет щелчок правой кнопкой мыши, чтобы открыть в текущей папке, что теперь, если вы просто откроете Терминал через меню `` Пуск '', он откроется в каталог system32

Затем люди забывают о побочном эффекте, если вы добавляете "startingDirectory": "." для работы с редактированием реестра, которое добавляет щелчок правой кнопкой мыши, чтобы открыть в текущей папке, что теперь, если вы просто откроете Терминал через меню `` Пуск '', он откроется в каталог system32

по этой причине моему сценарию это не нужно

Ни один из этих вариантов меня не устраивает. Итак, я получил удар.

Я модифицировал решение @OmegaRogue . Мне не нравилось вложение, поэтому я попытался разделить админку и не админа в отдельные меню.

image

К сожалению, я не могу понять, как получить команды администратора на одном уровне. Вот что у меня есть:
image

Вот мой файл .reg
Я оставил несколько комментариев, чтобы помочь людям понять, какие разделы чем занимаются, и, возможно, кто-то может помочь исправить вложение администратора.

Я добавил в суть версию скрипта реестра, у которого нет вложенности:
https://gist.github.com/OmegaRogue/9069405e7b0bf5e76f1c5d9c96f8b663#file -directory_prompts_windowsterminal_nonnested-reg

Сделал это:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt]
@="Windows Terminal here"
"Icon"="C:\\Program Files\\WindowsApps\\Microsoft.WindowsTerminal_0.10.781.0_x64__8wekyb3d8bbwe\\WindowsTerminal.exe"

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt\command]
@="C:\\Users\\<user>\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe -d %V"

[HKEY_CLASSES_ROOT\Directory\shell\wt]
@="Windows Terminal here"
"Icon"="C:\\Program Files\\WindowsApps\\Microsoft.WindowsTerminal_0.10.781.0_x64__8wekyb3d8bbwe\\WindowsTerminal.exe"

[HKEY_CLASSES_ROOT\Directory\shell\wt\command]
@="C:\\Users\\<user>\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe -d %V"
  • выполнить это

Сделал это:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt]
@="Windows Terminal here"
"Icon"="C:\\Users\\<user>\\AppData\\Local\\Terminal\\terminal.ico"

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt\command]
@="C:\\Users\\<user>\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe -d ."

[HKEY_CLASSES_ROOT\Directory\shell\wt]
@="Windows Terminal here"
"Icon"="C:\\Users\\<user>\\AppData\\Local\\Terminal\\terminal.ico"

[HKEY_CLASSES_ROOT\Directory\shell\wt\command]
@="C:\\Users\\<user>\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe -d ."
  • выполнить это

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

Ну, нам нужно редактировать файл reg каждый раз, когда обновляется терминал Windows? лучше хранить файл значка где-нибудь еще

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt]
@="Windows Terminal here"
"Icon"="C:\\Program Files\\WindowsApps\\Microsoft.WindowsTerminal_0.11.1121.0_x64__8wekyb3d8bbwe\\WindowsTerminal.exe"

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt\command]
@="C:\\Users\\user\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe -d ."

[HKEY_CLASSES_ROOT\Directory\shell\wt]
@="Windows Terminal here"
"Icon"="C:\\Program Files\\WindowsApps\\Microsoft.WindowsTerminal_0.11.1121.0_x64__8wekyb3d8bbwe\\WindowsTerminal.exe"

[HKEY_CLASSES_ROOT\Directory\shell\wt\command]
@="C:\\Users\\user\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe -d ."

Я заметил, что щелчок правой кнопкой мыши по папке и запуск терминала не работает должным образом, он открывается в папке контейнера.
Пришел к решению, заменив wt.exe -d . на wt.exe -d "%V" в сценарии реестра, как это делает VS Code.

Вот исправленный скрипт реестра, который я использовал (без значка)

Изменить: добавлен% V. как предложено, и щелкните правой кнопкой мыши диск.

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\shell\wt]
@="Open Windows Terminal here"
[HKEY_CLASSES_ROOT\Directory\shell\wt\command]
@="C:\\Users\\user\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe -d \"%V.\""

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt]
@="Open Windows Terminal here"
[HKEY_CLASSES_ROOT\Directory\Background\shell\wt\command]
@="C:\\Users\\user\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe -d \"%V.\""

[HKEY_CLASSES_ROOT\Drive\shell\wt]
@="Open Windows Terminal here"
[HKEY_CLASSES_ROOT\Drive\shell\wt\command]
@="C:\\Users\\user\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe -d \"%V.\""

Это решение отлично сработало, спасибо.

@BealeStBluesBoy и @ megapro17 Спасибо за ваш reg файл.
Я заметил, что wt.exe -d \"%V\" правильно открывается с выбранной папкой, но не работает, когда вы находитесь в корне диска. Пример для c: или d: . Он открывает терминал, но с кодом ошибки 0x8007010b
Кроме того, когда вы выбираете диск и запускаете эту команду, появляется другая ошибка, и терминал даже не открывается.

Однако с wt.exe -d . терминал открывается без проблем, независимо от того, где вы находитесь. Обратной стороной является то, что он просто открывает каталог, в котором вы находитесь, а не тот каталог, который вы выбрали. Когда вы выбираете диск напрямую, он просто открывается в папке c:\windows\system32 .

Я буду придерживаться wt.exe -d . поскольку он всегда открывает полезный терминал.

РЕДАКТИРОВАТЬ:
Как предлагает @ DHowett-MSFT ниже, есть еще один вариант wt.exe -d \"%V\.\" . Это улучшает поведение и делает терминал открытым, даже когда вы находитесь в корне диска. Одна вещь, которая все еще не работает с этим решением, - это когда вы выбираете диск. Это все равно приведет к ошибке.

Offtopic: Эта проблема - слишком большой способ прочитать каждый отдельный комментарий :) Извините за двойную публикацию проблемы.

Попробуйте "%V\." , как это неоднократно предлагалось в этой цепочке.

Как добавить запуск от имени администратора?

А можно через терминал перейти в админку?

А можно через терминал перейти в админку?

Не сейчас с ванильным терминалом Windows. Может быть, WT v2.0, см. # 5000. Но есть обходной путь: вы можете использовать gsudo, Sudo с открытым исходным кодом для Windows.
https://github.com/gerardog/gsudo

Поскольку я являюсь автором, я чувствую себя обязанным предупредить, что технически возможно, что специально созданная вредоносная программа потенциально может отправлять нажатия клавиш на консоль sudo'ed и пропускать изоляцию UAC / и повышать привилегии.

Говоря о способе cmd, уже существует команда cmd с именем runas которая запрашивает пароль (аналогично sudo ).
https://en.wikipedia.org/wiki/Runas

А можно через терминал перейти в админку?

Не сейчас с ванильным терминалом Windows. Mayve WT v2.0, см. # 5000. Но есть обходной путь: вы можете использовать gsudo, Sudo с открытым исходным кодом для Windows.
https://github.com/gerardog/gsudo

Поскольку я являюсь автором, я чувствую себя обязанным предупредить, что технически возможно, что специально созданная вредоносная программа потенциально может отправлять нажатия клавиш на консоль sudo'ed и пропускать изоляцию UAC / и повышать привилегии.

Что, если мы проверим нежелательный доступ с помощью какого-либо механизма безопасности? Это сработает? GSudo - хорошее начало.

@BealeStBluesBoy и @ megapro17 Спасибо за ваш reg файл.
Я заметил, что wt.exe -d \"%V\" правильно открывается с выбранной папкой, но не работает, когда вы находитесь в корне диска. Пример для c: или d: . Он открывает терминал, но с кодом ошибки 0x8007010b
Кроме того, когда вы выбираете диск и запускаете эту команду, появляется другая ошибка, и терминал даже не открывается.

Однако с wt.exe -d . терминал открывается без проблем, независимо от того, где вы находитесь. Обратной стороной является то, что он просто открывает каталог, в котором вы находитесь, а не тот каталог, который вы выбрали. Когда вы выбираете диск напрямую, он просто открывается в папке c:\windows\system32 .

Я буду придерживаться wt.exe -d . поскольку он всегда открывает полезный терминал.

РЕДАКТИРОВАТЬ:
Как предлагает @ DHowett-MSFT ниже, есть еще один вариант wt.exe -d \"%V\.\" . Это улучшает поведение и делает терминал открытым, даже когда вы находитесь в корне диска. Одна вещь, которая все еще не работает с этим решением, - это когда вы выбираете диск. Это все равно приведет к ошибке.

Offtopic: Эта проблема - слишком большой способ прочитать каждый отдельный комментарий :) Извините за двойную публикацию проблемы.

@brainfoolong Существуют и другие проблемы, помимо корневого здесь . ✌

Как добавить запуск от имени администратора?

@aminya Я отключил UAC и отключил режим одобрения администратора (AAM), как ответил BrainSlugs83 в https://superuser.com/questions/462174/winr-runs-as-administrator-in-windows-8.
Если вас не волнуют проблемы с безопасностью или какие-либо побочные эффекты, которые это может вызвать, после этого Windows Terminal по умолчанию будет работать от имени администратора, поэтому после использования сценария реестра, описанного выше, никаких дополнительных настроек не требуется.

Я наконец решил проблему 🚀. Просто слейте это.

У этого есть кнопка администратора без каких-либо проблем с безопасностью.

Общий файл Reg

(Если у вас нет PowerShellCore, это медленнее):

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt]
@="Open Windows Terminal Here"
"Icon"="cmd.exe"

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt\command]
@="PowerShell -windowstyle hidden -Command \"Start-Process wt.exe -ArgumentList \\\"-d\\\",\\\"%V.\\\"\""

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt_admin]
@="Open Windows Terminal Here as Admin"
"Icon"="cmd.exe"
"HasLUAShield"=""

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt_admin\command]
@="PowerShell -windowstyle hidden -Command \"Start-Process wt.exe -ArgumentList \\\"-d\\\",\\\"%V.\\\" -Verb RunAs\""

[HKEY_CLASSES_ROOT\Directory\shell\wt]
@="Open Windows Terminal Here"
"Icon"="cmd.exe"

[HKEY_CLASSES_ROOT\Directory\shell\wt\command]
@="PowerShell -windowstyle hidden -Command \"Start-Process wt.exe -ArgumentList \\\"-d\\\",\\\"%V.\\\"\""


[HKEY_CLASSES_ROOT\Directory\shell\wt_admin]
@="Open Windows Terminal Here as Admin"
"Icon"="cmd.exe"
"HasLUAShield"=""

[HKEY_CLASSES_ROOT\Directory\shell\wt_admin\command]
@="PowerShell -windowstyle hidden -Command \"Start-Process wt.exe -ArgumentList \\\"-d\\\",\\\"%V.\\\" -Verb RunAs\""

Более быстрый файл регистрации

(Если у вас есть PowerShellCore)

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt]
@="Open Windows Terminal Here"
"Icon"="cmd.exe"

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt\command]
@="pwsh -windowstyle hidden -Command \"Start-Process wt.exe -ArgumentList \\\"-d\\\",\\\"%V.\\\"\""

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt_admin]
@="Open Windows Terminal Here as Admin"
"Icon"="cmd.exe"
"HasLUAShield"=""

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt_admin\command]
@="pwsh -windowstyle hidden -Command \"Start-Process wt.exe -ArgumentList \\\"-d\\\",\\\"%V.\\\" -Verb RunAs\""

[HKEY_CLASSES_ROOT\Directory\shell\wt]
@="Open Windows Terminal Here"
"Icon"="cmd.exe"

[HKEY_CLASSES_ROOT\Directory\shell\wt\command]
@="pwsh -windowstyle hidden -Command \"Start-Process wt.exe -ArgumentList \\\"-d\\\",\\\"%V.\\\"\""


[HKEY_CLASSES_ROOT\Directory\shell\wt_admin]
@="Open Windows Terminal Here as Admin"
"Icon"="cmd.exe"
"HasLUAShield"=""

[HKEY_CLASSES_ROOT\Directory\shell\wt_admin\command]
@="pwsh -windowstyle hidden -Command \"Start-Process wt.exe -ArgumentList \\\"-d\\\",\\\"%V.\\\" -Verb RunAs\""

Вы можете скачать значок отсюда и заменить его путь загрузки (escape \ ) на cmd.exe :
https://raw.githubusercontent.com/microsoft/terminal/master/res/terminal.ico

Режим администратора -windowstyle hidden тоже игнорируется

Режим администратора

Возможно, вам потребуется перезапустить explorer.exe

-windowstyle hidden тоже игнорируется

На мгновение он показывает окна.

некоторые из сценариев администратора не работают для меня, я не знаю почему, но я заметил, что git bash (говоря о том, какой vscode, похоже, имеет много точек входа open with vs code разбросанных по реестр) отображается в большем количестве меню, чем предлагают некоторые решения, поэтому я создал упрощенную версию @OmegaRogue
это использует "%USERPROFILE%\AppData\Local\Microsoft\WindowsApps\wt.exe" "-d" "." в качестве команды, как предлагается
https://gist.github.com/YoraiLevi/283532872b26b93e562b04812821db25

Windows Registry Editor Version 5.00

;drive
[HKEY_CLASSES_ROOT\Drive\shell\wt]
@="Open Windows Terminal Here"
"Icon"="cmd.exe"

[HKEY_CLASSES_ROOT\Drive\shell\wt\command]
@=hex(2):22,00,25,00,55,00,53,00,45,00,52,00,50,00,52,00,4f,00,46,00,49,00,4c,\
  00,45,00,25,00,5c,00,41,00,70,00,70,00,44,00,61,00,74,00,61,00,5c,00,4c,00,\
  6f,00,63,00,61,00,6c,00,5c,00,4d,00,69,00,63,00,72,00,6f,00,73,00,6f,00,66,\
  00,74,00,5c,00,57,00,69,00,6e,00,64,00,6f,00,77,00,73,00,41,00,70,00,70,00,\
  73,00,5c,00,77,00,74,00,2e,00,65,00,78,00,65,00,22,00,20,00,22,00,2d,00,64,\
  00,22,00,20,00,22,00,2e,00,22,00,00,00
;end drive


;background 1
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\background\shell\wt]
@="Open Windows Terminal Here"
"Icon"="cmd.exe"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\background\shell\wt\command]
@=hex(2):22,00,25,00,55,00,53,00,45,00,52,00,50,00,52,00,4f,00,46,00,49,00,4c,\
  00,45,00,25,00,5c,00,41,00,70,00,70,00,44,00,61,00,74,00,61,00,5c,00,4c,00,\
  6f,00,63,00,61,00,6c,00,5c,00,4d,00,69,00,63,00,72,00,6f,00,73,00,6f,00,66,\
  00,74,00,5c,00,57,00,69,00,6e,00,64,00,6f,00,77,00,73,00,41,00,70,00,70,00,\
  73,00,5c,00,77,00,74,00,2e,00,65,00,78,00,65,00,22,00,20,00,22,00,2d,00,64,\
  00,22,00,20,00,22,00,2e,00,22,00,00,00
;end background 1

;libary folders, like what git does
[HKEY_CLASSES_ROOT\LibraryFolder\Background\shell\wt]
@="Open Windows Terminal Here"
"Icon"="cmd.exe"

[HKEY_CLASSES_ROOT\LibraryFolder\Background\shell\wt\command]
@=hex(2):22,00,25,00,55,00,53,00,45,00,52,00,50,00,52,00,4f,00,46,00,49,00,4c,\
  00,45,00,25,00,5c,00,41,00,70,00,70,00,44,00,61,00,74,00,61,00,5c,00,4c,00,\
  6f,00,63,00,61,00,6c,00,5c,00,4d,00,69,00,63,00,72,00,6f,00,73,00,6f,00,66,\
  00,74,00,5c,00,57,00,69,00,6e,00,64,00,6f,00,77,00,73,00,41,00,70,00,70,00,\
  73,00,5c,00,77,00,74,00,2e,00,65,00,78,00,65,00,22,00,20,00,22,00,2d,00,64,\
  00,22,00,20,00,22,00,2e,00,22,00,00,00
;end library folders 

;background 2
[HKEY_CLASSES_ROOT\Directory\background\shell\wt]
@="Open Windows Terminal Here"
"Icon"="cmd.exe"

[HKEY_CLASSES_ROOT\Directory\background\shell\wt\command]
@=hex(2):22,00,25,00,55,00,53,00,45,00,52,00,50,00,52,00,4f,00,46,00,49,00,4c,\
  00,45,00,25,00,5c,00,41,00,70,00,70,00,44,00,61,00,74,00,61,00,5c,00,4c,00,\
  6f,00,63,00,61,00,6c,00,5c,00,4d,00,69,00,63,00,72,00,6f,00,73,00,6f,00,66,\
  00,74,00,5c,00,57,00,69,00,6e,00,64,00,6f,00,77,00,73,00,41,00,70,00,70,00,\
  73,00,5c,00,77,00,74,00,2e,00,65,00,78,00,65,00,22,00,20,00,22,00,2d,00,64,\
  00,22,00,20,00,22,00,2e,00,22,00,00,00
;end background 2

Этот учебник объяснил лучше ➡️ https://windowsloop.com/add-open-windows-terminal-here-option-to-right-click-menu/

Я только что создал два сценария PowerShell для установки / удаления элементов контекстного меню и поделился ими на GitHub по адресу

https://github.com/lextm/windowsterminal-shell

Логика аналогична предложенной @ nerdio01 , но структура меню немного отличается (обновление: теперь поддерживаются несколько макетов).

image

С install.ps1 и uninstall.ps1 больше не нужно импортировать файлы ключей реестра и задумываться, как их удалить, если они вам не нравятся.

Запросы на вытягивание приветствуются.

Немного раздражает то, что значок находится на версионном пути, есть ли лучший способ ссылаться на него, кроме просто доставки моего?

На мой взгляд, необходимость вручную редактировать реестр - не идеальное решение. Одним из преимуществ этого проекта является то, что он поддерживает несколько видов оболочек (pwsh, cmd, ubuntu и т. Д.), И этот список может варьироваться от пользователя к пользователю. Фиксированный скрипт реестра не поможет.
Также необходимо не забыть вручную удалить изменения, внесенные в реестр, при удалении Терминала Windows.

Существуют ли особые конструктивные / технические соображения / ограничения, которые не позволяют встроить эту функцию в сам терминал Windows? Или это больше вопрос рабочей силы, приоритетов и времени?

рабочая сила, приоритеты и время

Определенно тот. Если бы у меня было время на разработку, я бы хотел предложить фактическое расширение оболочки, которое обнаруживало бы ваши профили и отображало их в меню, а также позволяло бы создавать оболочки в уже запущенных экземплярах Терминала.

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

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

Я не знаком с кодовой базой этого проекта, поэтому не могу сказать наверняка, уменьшит ли это объем работы, необходимой для его реализации. Но хотелось бы услышать ваше мнение по этому поводу.

просто введите wt в адресной строке в проводнике Windows в любой папке и нажмите Enter

Если кто-то попробовал @ llevo3, совет по wt в адресной строке проводника, как если бы вы использовали cmd не работает для вас.

Затем убедитесь, что в переменной среды PATH указано следующее:
%USERPROFILE%\AppData\Local\Microsoft\WindowsApps

просто введите wt в адресной строке в проводнике Windows в любой папке и нажмите Enter

@ llevo3 это не открывает терминал Windows в текущем каталоге. Скорее он открывается с каталогом по умолчанию.

@abdulghanitech эта чрезвычайно специфическая проблема обсуждалась в этой ветке не менее 30 раз. 😄

просто введите wt в адресной строке в проводнике Windows в любой папке и нажмите Enter

@ llevo3 это не открывает терминал Windows в текущем каталоге. Скорее он открывается с каталогом по умолчанию.

если вы хотите открыть текущий каталог, просто используйте опцию -d перед адресом
бывший
wt -d [path you want to go]

Чтобы уточнить, вы можете открыть текущий каталог, набрав wt -d .

В: Как только терминал открывается с помощью wt -d . , есть ли способ использовать тот же путь для новых экземпляров терминала (вкладка / панель)?

Спасибо всем, кто прокомментировал решение и различные подходы к его правильному применению. У меня работает с Консоль 2. Используя "Открыть здесь" с флагом -d . префект отработал.

Простите, как я могу это исправить

image

Чувак, не заходи в чужую беседу, чтобы задать вопрос. Сообщите о новой ошибке, и команда сможет ее изучить 😄

@miniksa @ zadjii-msft @ DHowett-MSFT @factormystic @ChrisGuzak

Решил проблему сейчас, можно было закрыть. Большое спасибо всем, кто участвовал в этой дискуссии.

Шаг 0:

Проверьте, хорошо ли работают две приведенные ниже константы, которые будут использоваться в следующих шагах.

echo %USERPROFILE%

echo %LOCALAPPDATA%

Если здесь все работает хорошо, то эти две константы можно использовать непосредственно в следующих шагах.

Или выполните следующие замены в следующих шагах:

% USERPROFILE% → C:\Users\[userName]
% LOCALAPPDATA% → C:\Users\[userName]\AppData\Local

Здесь [userName] представляет ваше имя пользователя , например, мое - Bruce .

Шаг 1:
Выполните следующие действия в CMD :

mkdir "%USERPROFILE%\AppData\Local\terminal"

image

Шаг 2:
Скопируйте значок терминала Windows в папку %USERPROFILE%\AppData\Local\terminal , значок можно получить в https://github.com/yanglr/WindowsDevTools/tree/master/awosomeTerminal/icons , имя файла которого wt_32.ico .

Шаг 3:
Сохраните следующий контент как wt.reg , затем запустите от имени администратора.

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt]
@="Windows terminal here"
"Icon"="%USERPROFILE%\\AppData\\Local\\terminal\\wt_32.ico"

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt\command]
@="%LOCALAPPDATA%\\Microsoft\\WindowsApps\\wt.exe"

Следует отметить , что если exe, полученный после самостоятельной сборки кода, равен wtd.exe , вам необходимо изменить указанное выше wt.exe на wtd.exe в приведенном выше реестре.

Шаг 4:
Контрольная работа
image

У меня была проблема с этим решением, некоторые проблемы с разрешениями, если это может кому-то помочь
заменить
@="%LOCALAPPDATA%\\Microsoft\\WindowsApps\\wt.exe"
с участием
@="C:\\Users\\YOURUSERNAME\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe -d ."

Насколько я понимаю, переменные среды с процентной кодировкой должны использовать расширяемый строковый тип ( REG_EXPAND_SZ ) для правильной интерпретации, поэтому я считаю, что некоторые другие решения не работают полностью 1 . Я создал приведенный ниже сценарий реестра, который использует расширяемые строки, поэтому вам не нужно менять имя пользователя, однако вы, вероятно, захотите изменить путь к значку .

Я также добавил действие / возможность открываться от имени администратора.

Windows Registry Editor Version 5.00

;Binary data is just UTF16 (LE) split every 2 bytes with a comma
;Conversion done with https://onlineutf8tools.com/convert-utf8-to-utf16?hex=true&little-endian=true&space=false&chain=split-string%253Fsplit-by-length%253Dtrue%2526separator%253D%252C

;User action
[HKEY_CLASSES_ROOT\Directory\Background\shell\WindowsTerminal]
@="Open Terminal here"
;"Icon"="%USERPROFILE%\Pictures\Icons\terminal.ico" (Location to ICO or comment out to hide icon)
"Icon"=hex(2):25,00,55,00,53,00,45,00,52,00,50,00,52,00,4f,00,46,00,49,00,4c,00,45,00,25,00,5c,00,50,00,69,00,63,00,74,00,75,00,72,00,65,00,73,00,5c,00,49,00,63,00,6f,00,6e,00,73,00,5c,00,74,00,65,00,72,00,6d,00,69,00,6e,00,61,00,6c,00,2e,00,69,00,63,00,6f,00

;User action command
[HKEY_CLASSES_ROOT\Directory\Background\shell\WindowsTerminal\command]
;@="%LOCALAPPDATA%\Microsoft\WindowsApps\wt.exe -d ."
@=hex(2):25,00,4c,00,4f,00,43,00,41,00,4c,00,41,00,50,00,50,00,44,00,41,00,54,00,41,00,25,00,5c,00,4d,00,69,00,63,00,72,00,6f,00,73,00,6f,00,66,00,74,00,5c,00,57,00,69,00,6e,00,64,00,6f,00,77,00,73,00,41,00,70,00,70,00,73,00,5c,00,77,00,74,00,2e,00,65,00,78,00,65,00,20,00,2d,00,64,00,20,00,2e,00

;Admin action
[HKEY_CLASSES_ROOT\Directory\Background\shell\WindowsTerminalAdmin]
@="Open Terminal here (Admin)"
;Show the UAC shield on the action
"HasLUAShield"=""
;"Icon"="%USERPROFILE%\Pictures\Icons\terminal.ico" (Location to ICO or comment out to hide icon)
"Icon"=hex(2):25,00,55,00,53,00,45,00,52,00,50,00,52,00,4f,00,46,00,49,00,4c,00,45,00,25,00,5c,00,50,00,69,00,63,00,74,00,75,00,72,00,65,00,73,00,5c,00,49,00,63,00,6f,00,6e,00,73,00,5c,00,74,00,65,00,72,00,6d,00,69,00,6e,00,61,00,6c,00,2e,00,69,00,63,00,6f,00

;Admin action command
[HKEY_CLASSES_ROOT\Directory\Background\shell\WindowsTerminalAdmin\command]
@="PowerShell -WindowStyle Hidden -Command \"Start-Process wt -ArgumentList '-d','.' -Verb runAs\""
  1. https://superuser.com/a/599025

Насколько я понимаю, переменные среды с процентной кодировкой должны использовать расширяемый строковый тип ( REG_EXPAND_SZ ) для правильной интерпретации, поэтому я считаю, что некоторые другие решения не работают _ полностью_1. Я создал приведенный ниже сценарий реестра, который использует расширяемые строки, поэтому вам не нужно менять имя пользователя, однако вы, вероятно, захотите изменить путь к значку .

Я также добавил действие / возможность открываться от имени администратора.

Windows Registry Editor Version 5.00

;Binary data is just UTF16 (LE) split every 2 bytes with a comma
;Conversion done with https://onlineutf8tools.com/convert-utf8-to-utf16?hex=true&little-endian=true&space=false&chain=split-string%253Fsplit-by-length%253Dtrue%2526separator%253D%252C

;User action
[HKEY_CLASSES_ROOT\Directory\Background\shell\WindowsTerminal]
@="Open Terminal here"
;"Icon"="%USERPROFILE%\Pictures\Icons\terminal.ico" (Location to ICO or comment out to hide icon)
"Icon"=hex(2):25,00,55,00,53,00,45,00,52,00,50,00,52,00,4f,00,46,00,49,00,4c,00,45,00,25,00,5c,00,50,00,69,00,63,00,74,00,75,00,72,00,65,00,73,00,5c,00,49,00,63,00,6f,00,6e,00,73,00,5c,00,74,00,65,00,72,00,6d,00,69,00,6e,00,61,00,6c,00,2e,00,69,00,63,00,6f,00

;User action command
[HKEY_CLASSES_ROOT\Directory\Background\shell\WindowsTerminal\command]
;@="%LOCALAPPDATA%\Microsoft\WindowsApps\wt.exe -d ."
@=hex(2):25,00,4c,00,4f,00,43,00,41,00,4c,00,41,00,50,00,50,00,44,00,41,00,54,00,41,00,25,00,5c,00,4d,00,69,00,63,00,72,00,6f,00,73,00,6f,00,66,00,74,00,5c,00,57,00,69,00,6e,00,64,00,6f,00,77,00,73,00,41,00,70,00,70,00,73,00,5c,00,77,00,74,00,2e,00,65,00,78,00,65,00,20,00,2d,00,64,00,20,00,2e,00

;Admin action
[HKEY_CLASSES_ROOT\Directory\Background\shell\WindowsTerminalAdmin]
@="Open Terminal here (Admin)"
;Show the UAC shield on the action
"HasLUAShield"=""
;"Icon"="%USERPROFILE%\Pictures\Icons\terminal.ico" (Location to ICO or comment out to hide icon)
"Icon"=hex(2):25,00,55,00,53,00,45,00,52,00,50,00,52,00,4f,00,46,00,49,00,4c,00,45,00,25,00,5c,00,50,00,69,00,63,00,74,00,75,00,72,00,65,00,73,00,5c,00,49,00,63,00,6f,00,6e,00,73,00,5c,00,74,00,65,00,72,00,6d,00,69,00,6e,00,61,00,6c,00,2e,00,69,00,63,00,6f,00

;Admin action command
[HKEY_CLASSES_ROOT\Directory\Background\shell\WindowsTerminalAdmin\command]
@="PowerShell -WindowStyle Hidden -Command \"Start-Process wt -ArgumentList '-d','.' -Verb runAs\""
  1. https://superuser.com/a/599025

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

Для будущих читателей этой длинной ветки,

  • Microsoft решила включить собственные пункты контекстного меню Windows Explorer. Вот почему этот вопрос был закрыт. Однако из-за их цикла выпуска они не появятся на вашем компьютере (через Microsoft Store для Windows 10) через несколько недель (или месяцев). Пока что они разработали простое расширение оболочки с некоторыми основными функциями.
  • Если вам действительно нужны контекстные меню в данный момент, вы должны добавить такие пункты меню самостоятельно, используя один из методов в этом длинном потоке. Подвести итоги,

    • Импортируйте ключи реестра.
    • Используйте командные файлы. (как это )
    • Используйте скрипты PowerShell. (как это )

Что бы вы ни выбрали, сообщайте о проблемах владельцам репо, чтобы они могли их исправить.

  • Однако из-за их цикла выпуска он не появится на вашем компьютере (через Microsoft Store для Windows 10) через несколько недель (или месяцев).

О, это точно будет раньше месяца

: tada: Эта проблема была устранена в # 6100, который теперь успешно выпущен как Windows Terminal Preview v1.1.1671.0 .: tada:

Полезные ссылки:

Разве Store Download должны ссылаться на предварительную версию Windows Terminal (https://www.microsoft.com/store/apps/9n8g5rfz9xk3?cid=storebadge&ocid=badge)? 🤔

@DHowett о нет, нам нужно обновить бота

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

Ха, нам абсолютно необходимо обновить бота. Смешно.

Извините за сообщение не по теме, но если вы установили как версию выпуска, так и предварительную версию, которая будет вызываться при запуске wt?

Я предполагаю, что вы установили псевдонимы выполнения приложений в настройках Windows:
image

Ага.

Было бы неплохо, если бы значок терминала тоже был включен в контекстное меню

Было бы неплохо, если бы значок терминала тоже был включен в контекстное меню

Эй, ты знаешь, это №6246.

Пожалуйста, из любви ко всем остальным по этому вопросу (всем 111 из вас), пожалуйста, проверьте следующие вопросы:
https://github.com/microsoft/terminal/issues?q=is%3Aopen+is%3Aissue+label%3AArea-ShellExtension

прежде чем комментировать "чувак, было бы круто, если бы контекстное меню сделало ..."

Разве не следует использовать ссылку Store Download на предварительную версию Windows Terminal (

@DHowett о нет, нам нужно обновить бота

Ха, нам абсолютно необходимо обновить бота. Смешно.

Понял.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги