Windows Terminal v1.5.10271.0 開始,官方已經支持添加鼠標右鍵菜單,而無須自己添加。

Windows上有很多命令行程序,例如CMD和PowerShell。微軟在Build 2019上推出了一款面向Windows10的命令行程序,這款程序集合了Windows上的PowerShell、CMD以及Windows Subsystem for Linux於一身,解決了不少惹人吐槽的毛病,甚至被稱為Windows下命令體驗的救世主。而我早在Preview版發佈時,就已經下載使用,現在也是我主要使用的命令行工具。然而畢竟現在還是體驗版的關係,所以並沒有集成在右鍵菜單上。在搜索了許久之後,終於在Github上找到了安裝方法。

軟件安裝

Windows Terminal 現在還是 Preview 狀態,我們可以在 Microsoft Store 上下載安裝。當然有能力的人,可以下載Github的代碼自己編譯。

Windows Terminal (Preview) - Microsoft Store

GitHub - microsoft/terminal: The new Windows Terminal, and the original Windows console host - all in the same place!

添加 Windows Terminal 到右鍵菜單

測試變量

下面的兩個變量後面的操作需要使用到。所以,先測試下是否正常。

1
2
echo %USERPROFILE%
echo %LOCALAPPDATA%

如果有報錯,接下來的操作,請把對應的部分進行替換。

%USERPROFILE% 替換成 C:\Users\[userName]
%LOCALAPPDATA% 替換成 C:\Users\[userName]\AppData\Local

注意 [userName]為自己的用户名

創建圖標

從以下地址下載圖標

圖標ico下載 , 打開網址,鼠標右鍵保存到電腦。

打開命令行,輸入

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

這個命令是創建一個terminal文件夾,把下載的圖標ico複製到這個文件夾。

寫入註冊表

創建一個txt文檔,並把檔後綴改為reg。文檔的名字可自己創建,後綴名不可以錯。右鍵菜單出現Windows Terminal有兩種方法。一種是按shift+ 右鍵,另一種是直接右鍵

shift+ 右鍵

把下面的內容複製到reg去

1
2
3
4
5
6
7
8
9
Windows Registry Editor Version 5.00

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

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

注意:請把[user_name]改成自己電腦的用户名

右鍵

把下面的內容複製到reg去

1
2
3
4
5
6
7
8
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]
@="C:\\Users\\[user_name]\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe"

注意:請把[user_name]改成自己電腦的用户名

修改Windows Terminalprofile.json

打開profile.json

startingDirectory改為null,沒有的自己創建一個。

照著上面的方法操作,相信右鍵菜單已經出現Windows Terminal的入口了。

參考

  1. ‘Add “open Windows terminal here” into right-click context menu’ 下 yanglr 的回答