プログラムでWindowsターミナルでWSLを起動し、コマンドを実行する方法
Aug 18 2020
bash
バッチファイルからWindowsターミナル内でUbuntuWSL [shell:]を起動し、起動後すぐに実行されるコマンドを渡したいと思います。
- WSLを直接起動するときは、
-c
引数を使用してこれを行うことができます。たとえば、以下はWSLを開き、いくつかのローカルポートフォワーディングとのSSH接続を確立します。bash -c "ssh -L 3306:localhost:3306 -L 5900:localhost:5900 -L 8001:localhost:8001 [email protected]"
Windowsターミナルを使用してこれをどのように達成しますか?
回答
1 suamikim Aug 18 2020 at 22:19
私は2つの方法を見つけましたが、どちらもこれまでのところ機能しています。
- 専用プロファイルを作成する:
このcommandline
オプションは、起動時にシェルに直接渡される引数も受け入れwsl.exe
、追加の「起動コマンド」で直接使用できるようにします。
これで、以下を使用して実行されるバッチファイルを介してシェルを起動できます。ただし、欠点は、新しいプロファイルがWindowsターミナルのプロファイル選択メニューに表示されることです。{ "guid": "{...}", "hidden": false, "name": "Ubuntu SSH", "commandline": "wsl.exe ssh -L 3306:localhost:3306 -L 5900:localhost:5900 -L 8001:localhost:8001 [email protected]", }
wt -p "Ubuntu SSH"
- パス
commandline
先wt
:
オプション1に示すように、オプションcommandline
にはターゲットシェルのパラメーターを追加でき、バッチファイルから呼び出されると次のように機能します。
これが機能する理由を説明し、この回答の提案を調整する公式のオンラインリソースは見つかりませんでした。したがって、これがこのように機能することになっているのか、将来のバージョンで機能しなくなる可能性のある非表示/意図的でない機能なのかわかりません。wt wsl.exe ssh -L 3306:localhost:3306 -L 5900:localhost:5900 -L 8001:localhost:8001 [email protected]
harrymc Aug 18 2020 at 16:57
エラーメッセージは正しいです:Windowsターミナルには-c
パラメータがありません。
構文は次のとおりです。
wt [options] [command ; ]
唯一のオプションは次のとおりです。
-h,--help Print this help message and exit
-v,--version Display the application version
-M,--maximized Excludes: --fullscreen
Launch the window maximized
-F,--fullscreen Excludes: --maximized
Launch the window in fullscreen mode
-p Profile
-d Directory