別の Windows アプリケーションから WSL シェルを開く

別の Windows アプリケーションから WSL シェルを開く

Tower (git クライアント) を設定して、wsl bash シェルを起動しようとしています。いろいろ試してみましたが、これは意図したものではないようです。

ここに画像の説明を入力してください

私が試したこと:

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これをテストするには、まず実行ダイアログ ( + R)から次のコマンドを実行して、32 ビット バージョンの Cmd を起動します。%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 インスタンスを起動し、Windows Subsystem for Linux を読み込みます。

参照:

ここに画像の説明を入力してください


代替:

私が見つけたもう一つの選択肢はwsl-terminalただし、これはサードパーティのターミナルと他の多くの依存関係に依存しているため、使用しない方がよいでしょう。

関連情報