このページの本文へ

前へ 1 2 次へ

Windows Info 第287回

Windows Terminalのコマンドラインを極める

2021年08月08日 10時00分更新

文● 塩田紳二 編集● ASCII

  • この記事をはてなブックマークに追加
  • 本文印刷

Windows Terminalの-wオプションを使えば、コマンドラインから、同一ウィンドウのタブ内、別ウィンドウなどで任意のコマンドを実行させることが可能になる。うまく利用すると、コマンドラインの使い勝手が大きく変わる

 Windows Terminalは、UWPではあるが、wt.exeという「アプリ実行エイリアス」を使って、Win32コンソールアプリケーションのように扱うことができる。また、Ver.1.7からは、Windows Terminalのウィンドウを指定して起動コマンドを実行させることが可能になった。このあたりについては過去記事を参考にされたい。

●コマンドラインからウィンドウの制御が可能になったWindows Terminal v1.7
 https://ascii.jp/elem/000/004/049/4049105/

 とりあえずは最新の安定版(Ver.1.9)、プレビュー版(Ver.1.10)のWindows Terminalのコマンドラインを以下の表にまとめておく。

 Windows Terminalをwt.exeで起動するためには、「アプリ実行エイリアス」の設定を確認しておく必要がある。特にプレビュー版と安定版の両方をインストールしている場合、どちらが起動できるのかを確認しておく必要がある。それには、「設定」→「アプリ」→「アプリと機能」→「アプリ実行エイリアス」のリンクをクリックする。

Windows Terminalをコマンドラインから起動できるようにするためにはアプリ実行エイリアスを使う。プレビュー版を同時にインストールしている場合には、どちらが有効なのかを確認しておく必要がある

自分をペインに分割する

 WSLでbashを使っていると、manコマンドを終了させると、表示がmanコマンドの実行前に戻る。このため直前に何をやっていたのかを見失うことがない。しかし、cmd.exeのhelp.exeコマンドやPowerShellのget-helpにはこうした機能がなく、ヘルプを見たのはいいが、さて何をやっていたんだっけ? となることがある。

 Windows Terminalの起動オプションである「-w」「--window」を使えば、特定のウィンドウに対して、起動オプションを実行させることができる。このとき、「0」は自分自身を示す。たとえば、cmd.exeを実行しているなら以下のコマンドでタブの右側をペインに分割して、help.exeコマンドを実行する。なお、「identifyWindows」アクションをキーに割り当てると、それぞれのウィンドウに番号と名前を表示させられるようになっている。

現在開いているタブをペインに分割してhelp.exeを実行。Enterキーでペインを閉じることもできる。また、分割方法や分割位置の指定も可能

wt.exe -w 0 split-pane -p "コマンド プロンプト" cmd.exe /c "help.exe & set /P x= & exit 0"

 上のコマンドは、ヘルプコマンドの終了後にEnterキーを待った後にペインを閉じるもの。help.exeに引数として内部コマンドなどを指定すれば、該当のヘルプを見ることができる。後半の「& set /P x= & exit 0」の部分はいつも同じでかまわない。

 同じことは、Windows PowerShellの中でもできる。

コマンドラインは少し違うが、Windows PowerShellでもまったく同じことが可能だ

wt.exe -w 0 split-pane -p "Windows PowerShell" powershell.exe -command {get-help $c; read-host}

 このときのペイン分割は、「auto」で、Windows Terminalウィンドウの縦横のうち、長いほうを1/2に分割する。その他の分割方法、たとえば約1/3のサイズで上下分割したければ、

wt.exe -w 0 split-pane -H --size 0.3 -p "コマンド プロンプト" cmd.exe /c "help.exe & set /P x= & exit 0"

などとする。

別ウィンドウに表示する

 別ウィンドウを開いてそこにヘルプを表示したければ、-wオプションで適当なウィンドウIDを指定する。

 このときには新規にタブを開くので「split-pane」は含めない。

wt.exe -w HELP -p "コマンド プロンプト" cmd.exe /c "help.exe & set /P x= & exit 0"

 これはPowerShellでもほぼ同じだ。

wt.exe -w HELP -p "Windows PowerShell" powershell.exe -command {get-help ; read-host }

前へ 1 2 次へ

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

プレミアムPC試用レポート

ピックアップ

ASCII.jp RSS2.0 配信中

ASCII.jpメール デジタルMac/iPodマガジン