Terminal: 将“在此处打开Windows终端”添加到右键单击上下文菜单中

创建于 2019-05-30  ·  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终端中再有一个选择选项,以选择要打开的外壳作为上下文菜单(或类似菜单)的子菜单,并且在终端的配置文件中写上“名称”

  • 电源外壳
  • CMD
  • 的Ubuntu

我认为这是一个很好的功能请求,并且我们肯定会接受社区的帮助。

我的直觉说,这与#689的工作有关,但是我对Win32的了解还不够。

可能是这样的: https :

但是希望不要在我们的代码库中重新引入ATL ...

这样,比向文件夹上下文菜单添加单个命令要容易得多。 这只是一个简单的注册表项。

例如(然后您还可以添加图标等)

Windows Registry Editor Version 5.00

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

对于已禁用的应用程序,这在清单中声明。 请参见: https :

可能是#561的副本,但我们将在此处进行跟踪。

@miniksa @ zadjii-msft @ DH​​owett-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

第三步:
将以下内容另存为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是正确的选项。 现在,您可以在此处获取预览版本(位于https://github.com/yanglr/WindowsDevTools/tree/master/awosomeTerminal的.7z文件),然后在安装后使用wt.exe 。 我采用了这种方法。

@yanglr我使用过wtd.exe,但由于无法访问它而无法正常工作。.但是,每个最终用户都不能一个一个地添加到注册表中。

@ SJang1
我想您是在Debug mode构建了代码,请更改为Release mode ,如下所示:
image

@yanglr
已经内置发布。
image

作为记录,我认为我们希望终端自动代表用户注册此快捷方式。

@ zadjii-msft
太好了!

这个还没有被添加,所以我更希望我们一直保持这个问题,直到添加它的工作完成:)

如果没有人在研究它,我可以试一下吗?

@MelulekiDube去吧!

我的主要提示是,我们一直在尝试使TerminalApp更像UWP,并在WindowsTerminal项目中进行类似于Win32的操作。 由于此功能可能在Win32上相当繁重,因此我建议使用某种事件,即App (在TerminalApp中)可以触发以通​​知AppHost (在WindowsTerminal中)它应该设置快捷方式。 例如,我相信有一个事件TitleChanged App可以触发AppHost设置窗口的标题。

此外,由于Profile不是winrt类型,因此可能很难直接从WindowsTerminal项目获得其成员。 您可能必须让App Profile在事件本身中传达

祝好运!

编辑:我将此声明修改为HERE BE DRAGONS 。 在#607 /#1065中可能需要先完成一些工作,然后才能完成。

我担心这将需要与仍处于预规范阶段的#607紧密配合。

@ DHowett-MSFT很好。 我也忘记了#1065中最近的回归。 实际上,这可能属于“困难”的类别。 即使我们未针对每个配置文件执行此操作,也无法在当前目录中打开默认配置文件。

我什至不知道我们如何解决#1065,但是如果我们确实解决了该问题,那么从理论上讲,我们可以找到一些方法使用浏览器中的目录创建新的Windows Terminal实例,但这并不能真正解决每个问题。配置文件问题。 嗯。

可能会公开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中编写它是因为它是用于安装后Windows ISO脚本的,但是与.reg文件相对,我看不到使用此问题。

电源外壳:

$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] ),这样的_should_工作正常:

电源外壳:

$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 I followed your steps, the right-button menu appears, but when clicked, explorer.exe says "Windows cannot access the specified device, path or file. You may not have the appropriate permission to access the item." (Windows 无法访问指定的设备、路径或文件。你可能没有适当的权限访问该项目).

Running "%LOCALAPPDATA%\Microsoft\WindowsApps\wt.exe" from cmd prompt opens new terminal as expected, and I have similar setup for msys, wsl-terminal, all works fine, only windows terminal not work.

@ 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 @ DH​​owett-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

第三步:
将以下内容另存为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终端此处_处出现此错误,

@miniksa @ zadjii-msft @ DH​​owett-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
第三步:
将以下内容另存为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终端此处_处出现此错误,

就像@saisandeepvaddi提到的那样
对于wt.exe路径,请使用%LOCALAPPDATA%实际完整路径,而不要使用C:\\Users\\[your_user_acc]\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe

另外,请勿在设置中添加startingDirectory

它在我的PC上运行良好。 你可以尝试一下。

尝试将wt.exe添加到注册表中,如前所述,但是出现以下错误:
image

终端通常从命令行(Win + R |“ wt”)启动。

我认为新终端的定制是一个优势。 如果在设置中怎么办? 假设"ExplorerIntegration": true 。 然后,批处理脚本可以像在FluentTerminal项目中一样添加它们。

嘿,我只是花了点力气才能够在特定的右键单击文件夹中打开Windows Terminal,并认为这对于某人可能很有趣/有用。 当您切换到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

到目前为止,与终端一起玩很有趣,这要感谢堆heap。

@minhtuanta尝试删除设置中的startingDirectory 。 😊

删除startingDirectory对我有用。 多么狡猾的环境😛

作为右键单击菜单的替代方法(到目前为止,效果非常棒):如果通过按ctrl+l或单击它,然后键入wt.exe突出显示当前目录的地址栏,则Windows终端将打开您在该目录中的默认外壳。

@kaeside希望“如果终端已经在运行,请在新选项卡中的当前选项卡中”打开默认外壳。

您可以从github中的仓库中获取真正的图标

@kaeside不知道您使用的是哪个版本,但我总是以这种方式打开命令提示符(Alt + D,输入cmd ),它会在当前的工作目录中打开,但是对于Windows Terminal,它总是在用户目录。
至少为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] ,即使profile.json不包含“ startingDirectory”。

对我来说,解决此问题的方法是添加“ startingDirectory”:“。” 到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文件中,自定义图标位置以进行品尝,保存并以Administrator身份运行并欣赏。 并且不要忘记@rendrap的评论,即将配置文件startingDirectory更改.以使这项工作按预期进行。

@IanKemp现在环境变量可以正常工作了,但是自从应用商店上次更新以来,它没有在目录中打开,您对此有什么解决方案?

@poqdavid我建议您@rendrap的评论。

因此,右键单击“在这里打开Windows终端”可以正常工作,但是我不知道如何使它以管理员身份运行。 我试过在注册表中使用runas以及runas动词,但没有运气。

但是,如果按Windows键->键入Terminal->单击“以管理员身份运行”,我的确会以管理员身份运行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"

编辑:如上所述,将您的起始目录设置为“。” 在您的profiles.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键->键入Terminal->单击“以管理员身份运行”,我的确会以管理员身份运行Windows终端,因此这绝对有可能。

设置WT环境以使其以管理员身份启动的秘诀是什么?

@IanKemp您可以通过更改注册表项runas下的command的值来尝试这种方式:
cmd.exe /s /c pushd "%V" & start wt.exe

虽然有点circuit回,但至少这对我有用。

如果已经有一个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 :

我觉得这就是我不再使用Terminal的原因,因为打开命令提示符的方式是File Explorer中的80%。 其余的来自Win + R + cmd + Enter,我刚刚了解了wt别名,因此对您有所帮助。

完成此操作后,将有很大的机会在“设置”中以及带有PowerShell / CMD开关的位置将其公开:

image

可以选择首选的外壳作为下拉列表,并在安装了Terminal的情况下进行安装是一个很好的选择。

@ michael-hawker您真正想要的是#492😁

我将整个过程自动化为一个蝙蝠文件,您需要以管理员身份运行。
将Windows Terminal添加到上下文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

我将整个过程自动化为一个蝙蝠文件,您需要以管理员身份运行。
将Windows Terminal添加到上下文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就足够了。
当您至少打开一个文件夹时,任务管理器将在“结束任务”的正常位置显示“重新启动”(在第一页,而不是进程详细信息)

@Horacehxw仅当它是最后一个条目时。

问题不是结尾处的逗号,而是“目录”的拼写。 上一个缺少“ c”。

我将整个过程自动化为一个蝙蝠文件,您需要以管理员身份运行。
将Windows Terminal添加到上下文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": []
}

另一个问题是终端实际上​​并没有进入正确的“这里”路径,而是仅在我的用户路径上开始

我将整个过程自动化为一个蝙蝠文件,您需要以管理员身份运行。
将Windows Terminal添加到上下文menu.zip
您仍然需要将profiles.json中的起始目录修改为"startingDiretory" : ".",

警告:输入错误,应改用"startingDirectory" : "."

如果您正确操作并在此处打开,效果很好。
我注意到的一个问题是,如果您正常打开终端...默认目录为system32 ...是否有任何方法可以覆盖并在正常打开时使用用户文件夹?

我将整个过程自动化为一个蝙蝠文件,您需要以管理员身份运行。
将Windows Terminal添加到上下文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
        }

确保最后的个人资料部分中没有逗号

我将整个过程自动化为一个蝙蝠文件,您需要以管理员身份运行。
将Windows Terminal添加到上下文menu.zip
您仍然需要将profiles.json中的起始目录修改为"startingDiretory" : ".",

警告:输入错误,应改用"startingDirectory" : "."

如果您正确操作并在此处打开,效果很好。
我注意到的一个问题是,如果您正常打开终端...默认目录为system32 ...是否有任何方法可以覆盖并在正常打开时使用用户文件夹?

嘿! 我也有这个问题。 一个快速而肮脏的修复方法是在WSL终端中向您的.bashrc文件添加cd命令。
回声'cd〜'>>〜/ .bashrc

这将破坏该线程的全部目的,因为无论您在何处打开终端,该线程始终位于“〜”目录中。 在wsl / msys2 / mingw64 / git bash中打开终端后,只需键入“ cd〜”。

我将整个过程自动化为一个蝙蝠文件,您需要以管理员身份运行。
将Windows Terminal添加到上下文menu.zip
您仍然需要将profiles.json中的起始目录修改为"startingDiretory" : ".",

警告:输入错误,应改用"startingDirectory" : "."

如果您正确操作并在此处打开,效果很好。
我注意到的一个问题是,如果您正常打开终端...默认目录为system32 ...是否有任何方法可以覆盖并在正常打开时使用用户文件夹?

嘿! 我也有这个问题。 一个快速而肮脏的修复方法是在WSL终端中向您的.bashrc文件添加cd命令。
回声'cd〜'>>〜/ .bashrc

这将破坏该线程的全部目的,因为无论您在何处打开终端,该线程始终位于“〜”目录中。 在wsl / msys2 / mingw64 / git bash中打开终端后,只需键入“ cd〜”。

当您单击“在此处打开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 Terminal设置文件中,确保默认外壳程序的配置文件包含"startingDirectory": ".", ,表示“在当前工作目录中启动”。 (如果跳过此步骤,Windows Terminal将忽略工作目录,并将始终在您的主目录中启动。)

现在说明:

  1. 导航到资源管理器中一些有趣的文件夹!
  2. 按Ctrl-L,输入wt ,然后按Enter。 而已! 做完了! Windows终端会在您要查看的文件夹中打开。

上面的粗体文字是实际说明。 呵呵。 而已!

我不需要右键单击菜单项。 我很少需要在当前目录中打开终端,这非常少见,并且只要按Ctrl-L, wt和Enter,就可以了。 这是超级快捷和ez。

@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 Store应用程序中“以管理员身份运行”是不可能的(我直接从安装程序通过Chocolatey安装了Windows Terminal,但它仍然是Windows Store应用程序)。

这是我当前的设置:

  • PowerShell是我的默认外壳。
  • 我的PowerShell配置包含以下额外的行:
function EditProfile { notepad "$profile" }
function GoAdmin { start-process pwsh –verb runAs }

当您键入GoAdmin时,将弹出一个管理员权限对话框,然后PowerShell将以admin身份在您浏览到的确切文件夹中的单独的Shell窗口(不是Windows Terminal托管)中启动。 这很方便,对我来说足够了,因为我仅将它用于巧克力般的安装/更新程序包。 其实并不需要其他任何管理员权限。

但是对于您来说,我想尝试对其进行改进,以便能够以管理员权限启动Windows Terminal本身。 但是,它失败了:

# 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 }

因此,除非有办法解决“系统无法访问该文件”错误,否则无法通过PowerShell脚本以管理员身份启动Windows Terminal。 也许有人想办法。 (编辑:好像无法以管理员身份启动wt的解释是Windows Terminal是作为非管理员用户安装的,因此管理员用户无法找到它。至少这就是我理解此消息的方式。 )

如果没有,我希望您至少喜欢我在此处提供的GoAdmin命令,该命令确实以管理员身份成功启动了一个单独的PowerShell窗口。 对我来说,足够管理巧克力包,所以我不介意它不是Windows Terminal窗口...(它不使用Windows Terminal也很有用,因为这意味着“管理员权限” Shell在外观上有所不同,这是一个很好的提醒,不要将其用于常规工作,因为管理员权限很危险,并且会传播到通过Shell启动的所有程序中,因此请不要粗心使用。)

PS:如果您使用的是内置的过时“ Windows PowerShell”,请用powershell替换pwsh 。 我改用https://github.com/PowerShell/PowerShell (通过choco install powershell-core安装)中的PowerShell Core 6。

另一个提示:我已将Windows Terminal本身固定在任务栏的最左侧。 这样,我可以按Win + 1来立即启动它(如果已经启动,则将其聚焦)。 很方便。 这也意味着,如果我真的希望Windows Terminal本身以管理员身份运行,我可以右键单击该任务栏图标,然后在出现的菜单中右键单击“ Windows Terminal”,最后单击“以管理员身份运行”)。

最后提示:将startingDirectory设置为“。”后,如果从快捷方式(例如从固定的任务栏或通过开始菜单;但通过Win + R或通过资源管理器_not_来启动),Windows终端将始终在system32文件夹中打开后一种方法正常工作))。 但是有一种快速访问主文件夹的方法:只需键入cd并按Enter即可始终直接回家。

另一种方法是从Scoop安装sudo命令
scoop install sudo
http://blog.lukesampson.com/sudo-for-windows
除了允许您以提升的特权运行命令之外,您还可以使用sudo powershellsudo cmd命令来启动提升的PowerShell /命令提示符会话。

@ Restia666Ashdoll如我的回答中所述,不需要第三方“ sudo”命令。 PowerShell具有内置的“ sudo”: https : = 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 httpiesudo Install-Module oh-my-posh -Force 。 哎呀,您甚至可以从常规Powershell像sudo choco install mpv使用Chocolatey(尽管我个人不喜欢Chocolatey)。 当然,用于Windows的sudo也有局限性。

@ 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,然后更换pwshpowershell以上。)_

现在,在非管理员会话中运行sudo choco install sysinternals在管理员会话中执行该命令。

请注意,PowerShell的启动过程不支持直接在“主机”非管理外壳中输出的生成管理子外壳,因此它在弹出窗口中运行并暂停,以便您可以在关闭该窗口之前读取结果。 对我来说足够好了。

我确实看过https://github.com/lukesampson/psutils/blob/master/sudo.ps1 (您提出的脚本),但感觉调用内核函数来附加管理员的输出有点棘手子进程进入运行中的终端,并担心将非安全特权利用所有https://github.com/noseratio/choco/tree/master/wsudo上还有另一个叫做wsudo的东西,但是我并没有真正深入研究它。 我只是写了自己的版本。

再次感谢您的推动。 最好有一个命令来以管理员身份快速运行单个操作。 我先前发布的GoAdmin命令对于启动一个单独的管理控制台仍然非常有用,该控制台支持照常键入多个操作。 但是现在使用此新命令运行单个命令要容易一些!

PS:如果有人想知道将此功能或其他所有功能放在哪里,只需键入Write-Host $Profile (在powershell中写主机为“ echo”)以查看配置文件路径,然后在缺少该文件的情况下创建该文件,然后将功能放在那里并重新启动PowerShell。

(这些“内核”功能实际上是该团队的官方支持的控制台API,它们恰好存在于名为kernel32 (出于传统原因)。)

@ DHowett-MSFT啊。 卢克·桑普森(Luke Sampson)的sudo.ps1代码说DllImport("kernel32.dll") ,但是您是说使用这些函数将admin shell的输出重定向到当前shell完全可以吗?

坦率地说,它在Unix系统上的行为类似于sudo。 几乎每个使用Scoop的人都使用它。 这就是我想要的-在当前shell中以提升的特权运行命令。 这就是每个人都希望的,如果Microsoft做出了适当的“ Windows sudo”。

感谢您对此主题的精彩讨论! 您介意将关于上下文菜单选项以外的内容的讨论转移到其他地方吗? 对于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完成

我看不到需要在此处更换cmd提示符的提示。

在地址栏中单击它,然后键入wt.exe,然后按Enter。 Windows Terminal中的,当前浏览窗口为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终端配置。 使用默认名称将要打开当前目录的配置文件。

"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_CURRENT_USER代替HKEY_CLASSES_ROOT)

4)测试。 右键单击时,它将打开您所在的目录。
我仅使用cmd.exe作为默认配置文件进行了测试。 我不知道它是否适用于其他个人资料类型。

Capture

从我右键单击的文件夹中打开一个Windows终端

Capture

至少将其更改为HKCU,以便仅更改自己的用户帐户

@VideoPlayerCode感谢很多人用Windows终端解决了我的问题

@yangshuairocks地雷在执行此操作时不会闪烁一次,但会闪烁两次,然后提示您进行管理。

我想要“在Windows终端中以新标签打开”。
我不想让我的桌面被很多终端窗口弄得一团糟。

聚苯乙烯
"startingDirectory": "."使得$PWD从开始菜单打开了终端或任务栏的C:\Windows\System32

来自此处给出的所有注释的简单解决方案: https :

实际上,您不需要编写完整路径。 终端位于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 Terminal(例如,从开始菜单),开始目录是我的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主目录是否存在,或者直接启动Terminal时是否使用其他配置文件?

是的,它确实:

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文件夹而不是/c/Users/AmaralR/Workspace/打开~/Workspace ,那将有多酷? 你们认为这是遥不可及的吗?

我有一个问题。 仅当我右键单击文件夹时,才会出现“ Rick单击”命令。 但是,当我右键单击文件夹中的空白区域时,尽管出现了VS Code和我的默认WSL发行版(Pengwin),但没有出现终端条目(请参阅gif)。 我将Terminal,VS Code和Pengwin设置为Extended Shell模式(按住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 \ WindowsTerminalHere中输入一项

参见https://github.com/shanselman/WindowsTerminalHere/pull/3/files

当我尝试在终端中启动cmd选项卡时,我得到

[启动“ cmd.exe”时出现错误0x8007010b]

我有一个问题。 仅当我右键单击文件夹时,才会出现“ Rick单击”命令。

我不确定造成此问题的原因是什么,但是您可以查看此存储库以使其更像Powershell

Gif demo

大家好,
我实现了一个简单的脚本来添加上下文菜单。
适用于Windows终端版本0.9.433.0

谢谢@ nt4f04uNd和其他所有启发我的东西

回购: Windows-terminal-context-menu

大家好,
我实现了一个简单的脚本来添加上下文菜单。
适用于Windows终端版本0.9.433.0

谢谢@ nt4f04uNd和其他所有启发我的东西

回购: Windows-terminal-context-menu

这真的很棒!!! 但是很少注意:
https://docs.microsoft.com/zh-cn/powershell/module/microsoft.powershell.core/about/about_execution_policies?view=powershell-7
您需要将Set-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解决该问题。 我为此在您的仓库中创建了一个问题。 另外,在某些情况下,Profile解析似乎存在问题。 无论如何,感谢您的脚本!

@Nomelas

感谢您的答复。
我已经解决了有关图标丢失的问题。 只需重新安装,然后重新登录。
我不想将$ resourcePath设置为脚本位置。 由于用户可能会出于任何原因删除安装程序文件夹,因此该图标将再次丢失。

第二件事,您可以分享git bash个人资料吗? 因为我没有在WT上设置Git-bash。
我需要一种模式来设置规则。

嗨@Nomelas

感谢您的答复。
我已经解决了有关图标丢失的问题。 只需重新安装,然后重新登录。
我不想将$ resourcePath设置为脚本位置。 由于用户可能会出于任何原因删除安装程序文件夹,因此该图标将再次丢失。

第二件事,您可以分享git bash个人资料吗? 因为我没有在WT上设置Git-bash。
我需要一种模式来设置规则。

我已解决所有问题,并正在提交PR

@Nomelas ,很不幸,它对我不起作用。 我编辑了config.json并运行ps脚本。 单击图标(无外壳文件夹)后,我收到:
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%”时,仅在我的用户目录中同时打开两种方式。

从开始菜单打开时,有没有办法使此处打开工作并且仍将“%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\""

仅当我按下SHIFT键时,如何添加选项才能打开something.exe-与“ PowerShell Window”选项一样

伙计们,我知道我参加这个聚会有点晚了,但是如何使用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-terminal-context-menu

这真的很棒!!! 但是很少注意:
https://docs.microsoft.com/zh-cn/powershell/module/microsoft.powershell.core/about/about_execution_policies?view=powershell-7
您需要将Set-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并成功安装。

谢谢〜

我拥有最新版本,但是当我更新自己的配置文件时与旧的配置文件版本相同时,抱歉,至少此更改对具有相同错误的人有效

Kuddos Kirito制作了脚本,非常好。 WT将来有可能支持吗?

@RonaldOlsthoorn当然有一个“机会”-因此为什么这个问题仍然存在😄

如果有人可以弄清楚如何从打包的应用程序中安装这些上下文菜单项,并能够动态更新这些项(以反映配置文件列表),那么我们当然会对复习PR感兴趣,直到那时为止。只是我们的积压。

也许为Pengwin做到这一点的人也可以为Terminal做到这一点(或者至少就他们为使它工作而做的事情提供建议)。

大家好,
我实现了一个简单的脚本来添加上下文菜单。
适用于Windows终端版本0.9.433.0
谢谢@ nt4f04uNd和其他所有启发我的东西
回购: Windows-terminal-context-menu

这真的很棒!!! 但是很少注意:
https://docs.microsoft.com/zh-cn/powershell/module/microsoft.powershell.core/about/about_execution_policies?view=powershell-7
您需要将Set-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修改后的回调函数是什么。

我的工作花了很多时间来阅读人们的评论。😃

将“ Windows终端在这里”添加到右键单击上下文菜单中的步骤:
1)从微软商店下载Windows终端

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)注意:
在[您的用户名]中输入您的用户名。
例如我的用户名是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"

在桌面(或PC上的任何位置)中将文件另存为wt.reg并打开
(全部按OK)
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终端在Drive情况下为什么无法处理“%V”?

谢谢。

快捷方式应为%V\.

快捷方式应为%V\.

天啊! 这太棒了!!!

这适用于驱动器和文件夹...

您会这​​样,向我解释“%V”后面的“科学”吗? 它与常规“%V”有何不同?

因此,这是那些“奇怪的问题”之一。 驱动器根目录中的"%V"扩展为"C:\" 。 大多数命令参数解析器将\"作为" ,因为\是“转义”字符。 因此,它将路径从"C:\"变为C:" (删除第一个引用,然后消耗第二个引用)。

使用"%V\."可使驱动器根目录扩展为"C:\\." ,这是完全合法的。

因此,这是那些“奇怪的问题”之一。 驱动器根目录中的"%V"扩展为"C:\" 。 大多数命令参数解析器将\"作为" ,因为\是“转义”字符。 因此,它将路径从"C:\"变为C:" (删除第一个引用,然后消耗第二个引用)。

使用"%V\."可使驱动器根目录扩展为"C:\\." ,这是完全合法的。

明白了再次感谢你的帮助。

我已经通过商店安装了它,但是当我在注册表项中输入wt.exe作为命令时,Windows告诉我“找不到应用程序”。 如果将其更改为完整路径,即%LOCALAPPDATA%\Microsoft\WindowsApps\wt.exe ,则会收到“无法访问”错误(该项目的权限不正确)。

目前,我已将命令添加为cmd.exe /C start wt.exe ,并且此命令有效,尽管打开wt。时旧的cmd提示在屏幕上闪烁。

我已经通过商店安装了它,但是当我在注册表项中输入wt.exe作为命令时,Windows告诉我“找不到应用程序”。 如果将其更改为完整路径,即%LOCALAPPDATA%\Microsoft\WindowsApps\wt.exe ,则会收到“无法访问”错误(该项目的权限不正确)。

目前,我已将命令添加为cmd.exe /C start wt.exe ,并且此命令有效,尽管打开wt。时旧的cmd提示在屏幕上闪烁。

通过regedit%LOCALAPPDATA%更改真实地址,例如“ C:\ Users \ [user] AppData \ Local”

然后我将此"startingDirectory": "%__CD__%"到profile.json

我已经通过商店安装了它,但是当我在注册表项中输入wt.exe作为命令时,Windows告诉我“找不到应用程序”。 如果将其更改为完整路径,即%LOCALAPPDATA%\Microsoft\WindowsApps\wt.exe ,则会收到“无法访问”错误(该项目的权限不正确)。
目前,我已将命令添加为cmd.exe /C start wt.exe ,并且此命令有效,尽管打开wt。时旧的cmd提示在屏幕上闪烁。

通过regedit%LOCALAPPDATA%更改真实地址,例如“ C:\ Users [user] AppData \ Local”

然后我将此"startingDirectory": "%__CD__%"到profile.json

谢谢,看来这确实是正确的方法,使用扩展路径而不是%LOCALAPPDATA% 。 我正在使用"startingDirectory": "." wich也可以按预期工作。

@ Wosser1sProductions只使用此cmd.exe /s /k pushd "%V"而不是其他命令。

关键是要从上下文菜单中打开新的Windows Terminal( wt.exe可执行文件)。 打开常规命令提示符的默认值为确实cmd.exe /s /k pushd "%V"

是一个解决方案。

reg文件的坏处是您需要在HKEY_CLASSES_ROOT上下文中添加特定用户wt的路径(因为UWP按用户安装)。 我试图用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路径。 您需要找出它在哪里。

自定义此代码并将其粘贴到txt文件中,并将其重命名为_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的解决方案。 我不喜欢嵌套,所以我尝试将admin和non admin分成单独的菜单。

image

不幸的是,我无法弄清楚如何在同一级别获得admin命令。 这就是我所拥有的:
image

这是我的.reg文件
我留下了一些评论,以帮助人们弄清楚哪些部分在做什么,以便有人可以帮助解决管理员嵌套问题。

这些选项都不是我完全满意的东西。 所以,我刺了一下。

我修改了@OmegaRogue的解决方案。 我不喜欢嵌套,所以我尝试将admin和non admin分成单独的菜单。

image

不幸的是,我无法弄清楚如何在同一级别获得admin命令。 这就是我所拥有的:
image

这是我的.reg文件
我留下了一些评论,以帮助人们弄清楚哪些部分在做什么,以便有人可以帮助解决管理员嵌套问题。

我可以修改我的文件来执行此操作并删除管理嵌套

@OmegaRogue不错,但我想主菜单图标会随着版本消失(因此WindowsTerminal.exe路径更改)。 也许用更通用的图标代替它会更好。

编辑:另外,如果您设法添加(@ t-makaro)的管理选项而没有嵌套问题,那就太好了。

有趣的是,@ lllopo @OmegaRogue @ t-makaro @sundowatch和其他人如何重新发明轮子。

这些reg文件再次有相同的错误。 他们缺乏回滚或测试。 它们不适用于ě š č ř í é ý é ů等非ASCII字符的路径,否则您必须更改终端的设置。

代替这里看看。

有趣的是,@ lllopo @OmegaRogue @ t-makaro @sundowatch和其他人如何重新发明轮子。

这些reg文件再次有相同的错误。 他们缺乏回滚或测试。 它们不适用于ě š č ř í é ý é ů等非ASCII字符的路径,否则您必须更改终端的设置。

代替这里看看。

我知道这个问题,而且我使用的版本没有这个问题,我只是发布了此版本以提高可读性,我的版本使用了hex(2)编码的文本而不是普通字符串

然后,人们会忘记以下副作用:如果您添加"startingDirectory": "."来与添加右键单击以在当前文件夹中打开的注册表编辑一起工作,那么现在,如果您只是通过开始菜单打开终端,它将打开system32目录

然后,人们会忘记以下副作用:如果您添加"startingDirectory": "."来与添加右键单击以在当前文件夹中打开的注册表编辑一起工作,那么现在,如果您只是通过开始菜单打开终端,它将打开system32目录

这就是我的脚本不需要那个的原因

这些选项都不是我完全满意的东西。 所以,我刺了一下。

我修改了@OmegaRogue的解决方案。 我不喜欢嵌套,所以我尝试将admin和non admin分成单独的菜单。

image

不幸的是,我无法弄清楚如何在同一级别获得admin命令。 这就是我所拥有的:
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 ."
  • 执行它

您不需要下载图标,只需将可执行文件的路径用作图标路径即可,就像我在注册表脚本中所做的一样

那么,每次Windows终端更新时,我们都需要编辑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.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 "%V"替换wt.exe -d .来获得解决方案,这就是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\.\" 。 这样可以改善行为,即使在驱动器的根目录中也可以使终端打开。 选择此驱动器后,仍然无法使用该解决方案的一件事。 这仍然会导致错误。

题外话:这个问题是一种阅读每个评论的方法:)很抱歉,重复发布一个问题。

尝试"%V\." ,如在此线程中建议多次。

您如何也以管理员身份添加运行?

我们可以通过终端切换到管理员吗?

我们可以通过终端切换到管理员吗?

香草Windows终端目前不可用。 也许是WT v2.0,请参阅#5000。 但是,有一种解决方法:您可以使用gsudo(适用于Windows的开源Sudo)。
https://github.com/gerardog/gsudo

由于我是作者,因此我有义务警告,从技术上讲,特制恶意软件可能会向sudo操作控制台发送击键,并跳过UAC隔离/升级特权。

说到cmd方式,已经有一个名为runas的cmd命令要求输入密码(类似于sudo )。
https://zh.wikipedia.org/wiki/鲁纳斯

我们可以通过终端切换到管理员吗?

香草Windows终端目前不可用。 Mayve WT v2.0,请参阅#5000。 但是,有一种解决方法:您可以使用gsudo(适用于Windows的开源Sudo)。
https://github.com/gerardog/gsudo

由于我是作者,因此我有义务警告,从技术上讲,特制恶意软件可能会向sudo操作控制台发送击键,并跳过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\.\" 。 这样可以改善行为,即使在驱动器的根目录中也可以使终端打开。 选择此驱动器后,仍然无法使用该解决方案的一件事。 这仍然会导致错误。

题外话:这个问题是一种阅读每个评论的方法:)很抱歉,重复发布一个问题。

@brainfoolong除了驱动器的根目录在这里解决了所有这些问题。 ✌

您如何也以管理员身份添加运行?

@aminya我关闭了UAC并禁用了行政审批模式(AAM),例如在https://superuser.com/questions/462174/winr-runs-as-administrator-in-windows-8中回答的BrainSlugs83
如果您不关心安全问题或它可能引起的任何副作用,则在执行此操作后,Windows终端将默认以管理员身份运行,因此在使用上述注册表脚本之后,无需进行其他设置。

我终于解决了这个问题。 只是合并这个。

它具有管理按钮,没有任何安全问题。

通用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\""

您可以从此处下载图标,并将其下载路径(转义\ )替换cmd.exe
https://raw.githubusercontent.com/microsoft/terminal/master/res/terminal.ico

@aminya管理员模式根本不适合我。 -windowstyle hidden似乎也被忽略了

@aminya管理员模式根本不适合我。

您可能需要重新启动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.ps1uninstall.ps1 ,您不再需要导入注册表项文件,如果您不喜欢,不知道如何删除它们。

欢迎提出请求。

有点烦人的图标是在版本控制的路径中,除了只发布我的图标之外,还有更好的方法引用它吗?

我认为,必须手动编辑注册表不是一种理想的解决方案。 该项目的卖点之一是它支持多种外壳(pwsh,cmd,ubuntu等),并且此列表可能因用户而异。 固定的注册表脚本不会削减它。
人们还必须记住在卸载Windows Terminal时手动删除对注册表所做的更改。

是否有特定的设计/技术考虑/限制会阻止此功能内置到Windows Terminal本身中? 还是更多的人力,优先事项和时间问题?

人力,优先事项和时间

绝对是一个。 如果我花了所有的工程时间,那么我想提供一个实际的Shell扩展,它可以检测到您的配置文件并将其显示在菜单中,并让您在已经运行的Terminal实例中生成Shell。

经过考虑后,我认为可能有一种更简单的方法来解决此问题。 如果上下文菜单中只有一个静态条目,该操作将被打开,然后单击Windows Terminal,然后提示他们选择配置文件。

这样就无需维护一组动态的注册表项。 并进行设置,以使无需在每次单击鼠标时都分析和检查配置文件更改的设置文件。

我尚未熟悉该项目的代码库,因此无法确定是否会减少实施此项目所需的工作量。 但我想听听您对此的想法。

只需在Windows资源管理器中任何文件夹的地址栏中键入wt,然后按Enter

如果有人尝试了@ llevo3提示,就像您使用cmd一样在资源管理器地址栏中键入wt ,则对您不起作用。

然后确保以下内容位于您的PATH环境变量中
%USERPROFILE%\AppData\Local\Microsoft\WindowsApps

只需在Windows资源管理器中任何文件夹的地址栏中键入wt,然后按Enter

@ llevo3,这不会在当前目录中打开Windows终端。 而是使用默认目录打开。

@abdulghanitech这个非常具体的问题在该线程中被讨论了不少于30次。 😄

只需在Windows资源管理器中任何文件夹的地址栏中键入wt,然后按Enter

@ llevo3,这不会在当前目录中打开Windows终端。 而是使用默认目录打开。

如果要打开当前目录,只需在地址前面使用-d选项

wt -d [path you want to go]

为了明确起见,您可以通过键入wt -d .打开当前目录

问:使用wt -d .打开终端后,是否可以对新终端实例(选项卡/窗格)使用相同的路径?

感谢所有对解决方案和正确应用此解决方案的人发表评论。 我将其与Console 2配合使用。使用带有标记-d .的“在这里打开”功能是非常好的。

请问我该如何解决

image

杜德(Dude),请不要提出无关的话题。 提交一个新的错误,团队可以查看它

@miniksa @ zadjii-msft @ DH​​owett-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

第三步:
将以下内容另存为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 )才能正确解释,这就是为什么我认为其他一些解决方案不能完全起作用的原因。 我创建了以下使用可扩展字符串的注册表脚本,因此您不必更改用户名,但是,您可能想更改图标路径

我还添加了一个以管理员身份打开的操作/选项。

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终端的上下文菜单项的其他任何人。

对于以后阅读此长篇文章的读者,

  • Microsoft决定包括自己的Windows资源管理器上下文菜单项。 这就是为什么此问题已关闭。 但是,由于它们的发布周期,它会在几周(或几个月)内(通过适用于Windows 10的Microsoft Store)降落在您的计算机上。 到目前为止,他们开发了具有某些核心功能的简单外壳扩展。
  • 如果此时确实需要上下文菜单,则必须使用此长线程中的一种方法自行添加此类菜单项。 总而言之,

    • 导入注册表项。
    • 使用一些批处理文件。 (像这样
    • 使用某些PowerShell脚本。 (像这样

无论您选择什么,都可以向这些回购协议的所有者报告问题,以便他们进行修复。

  • 但是,由于它们的发布周期,它会在几周(或几个月)内(通过Windows 10的Microsoft Store)降落在您的计算机上

哦,肯定会早于几个月😉

tada:此问题已在#6100中得到解决,Windows Terminal Preview v1.1.1671.0 。:tada:

方便的链接:

不应该将Store Download链接到Windows Terminal Preview(https://www.microsoft.com/store/apps/9n8g5rfz9xk3?cid=storebadge&ocid=badge)吗? 🤔

@DHowett哦,不,我们需要更新机器人

似乎我现在仍将使用批处理脚本,因为香草版本不包含提升的选项,我敢肯定,随着时间的推移,香草版本将获得更多的选项和/或功能,这要归功于这个家伙谁提交了拉取请求!

absolutely,我们绝对需要更新该bot。 大声笑。

抱歉,出现脱机消息,但如果您同时安装了发行版和预览版,则在运行wt时会调用它们?

我猜您在Windows设置中的应用执行别名中设置了什么:
image

是的

如果上下文菜单中也包含终端图标,那就太好了

如果上下文菜单中也包含终端图标,那就太好了

嘿wadda,您知道的是#6246。

对于在此问题上的所有人(所有111个人)的热爱,请检查以下问题:
https://github.com/microsoft/terminal/issues?q=is%3Aopen+is%3Aissue+label%3AArea-ShellExtension

在评论“伙计,如果上下文菜单确实不错,那就好了……”

是否不应该将Store Download链接到Windows Terminal Preview( microsoft.com/store/apps/9n8g5rfz9xk3?cid=storebadge&ocid=badge )? 🤔

@DHowett哦,不,我们需要更新机器人

absolutely,我们绝对需要更新该bot。 大声笑。

得到它了。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

miniksa picture miniksa  ·  3评论

warpdesign picture warpdesign  ·  3评论

carlos-zamora picture carlos-zamora  ·  3评论

alabuzhev picture alabuzhev  ·  3评论

waf picture waf  ·  3评论