從另一個 Windows 應用程式開啟 wsl shell

從另一個 Windows 應用程式開啟 wsl shell

我正在嘗試配置 Tower(git 客戶端)來啟動 wsl bash shell。我已經嘗試了很多事情,但這似乎不是有意的。

在此輸入影像描述

我嘗試過的:

command:     c:\windows\system32\wsl.exe
parameters:  bash -i

command:     c:\windows\system32\bash.exe
parameters:  -i

command:     c:\windows\system32\cmd.exe
parameters:  /c "bash -i"

command:     c:\windows\system32\bash.exe
parameters:  -i

command:     c:\WINDOWS\System32\windowspowershell\v1.0\powershell.exe
parameters:  wsl bash -i

command:     cmd 
parameters:  /c start start bash -i

command:     C:\Windows\SysWOW64\cmd.exe
parameters:  /c start start bash -i

所有這些都只是彈出一個控制台視窗很短的時間,然後返回 Tower。

大多數這些命令都可以在資源管理器視窗中運行...

視窗命令

答案1

若要從 32 位元進程啟動 64 位元執行檔(例如從 Tower 啟動 wsl.exe),您需要使用sysnative 檔案系統重定向器

在這種情況下,運行:%windir%\sysnative\wsl.exe

Windows您可以先從「執行」對話方塊 ( + )執行下列命令啟動 32 位元版本的 Cmd 來對此進行測試R%windir%\SysWoW64\cmd.exe

然後,在 Cmd 實例內,您可以執行下列命令:

%windir%\sysnative\wsl.exe

現在您應該看到 64 位元 WSL 正在運行附加到同一個控制台實例: 在此輸入影像描述

答案2

看起來這個解決方法可以解決問題:

command:    C:\WINDOWS\sysnative\WindowsPowerShell\v1.0\powershell.exe
parameters: wsl bash

它啟動 64 位元 PowerShell 實例,然後載入適用於 Linux 的 Windows 子系統。

也可以看看:

在此輸入影像描述


選擇:

我發現的另一個選擇是使用wsl-terminal,但由於這取決於第三方終端和一大堆其他依賴項,因此它寧願不使用它。

相關內容