我正在尝试配置 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
您可以先启动 32 位版本的 Cmd,然后在运行对话框 ( Windows+ R) 中执行以下操作来测试这一点:%windir%\SysWoW64\cmd.exe
然后,在 Cmd 实例中,您可以执行以下操作:
%windir%\sysnative\wsl.exe
答案2
看起来这个解决方法可以解决问题:
command: C:\WINDOWS\sysnative\WindowsPowerShell\v1.0\powershell.exe
parameters: wsl bash
它启动一个 64 位 PowerShell 实例,然后加载适用于 Linux 的 Windows 子系统。
也可以看看:
选择:
我发现的另一种选择是使用wsl-terminal
,但由于它依赖于第三方终端和一大堆其他依赖项,所以它宁愿不使用它。