コマンドラインからの起動に対応、最終形が見えてきた「Windows Terminal」Windows 10 The Latest

Microsoftが開発中の新しいターミナルアプリ「Windows Terminal」のv0.9が公開された。コマンドラインからの起動が可能になるなど、正式版の姿が見えてきた。正式リリースに近づいたWindows Terminalの機能を見ていこう。

» 2020年03月09日 05時00分 公開
[塩田紳二]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

「Windows 10 The Latest」のインデックス

連載目次

Windows Terminal v0.9はコマンドラインオプションを実装 Windows Terminal v0.9はコマンドラインオプションを実装
Windows Terminal v0.9では、コマンドラインオプションを実装し、複数タブを同時に開いて複数ホストにSSHで同時接続するショートカットをスタートメニューやタスクバーに登録できるなど、便利な使い方が可能になった。

 2020年2月13日にWindows Terminal v0.9が公開された。当初の計画通りであれば、最初の正式版であるv1.0とほぼ同じ仕様を取り込んだバージョンとなる。しかし実際にはまだ積み残しがある(Windows 10 The Latest「開発が進む『Windows Terminal』、タブ内の複数ペイン分割や日本語IMEの利用も可能に」で前回のアップデートの内容や、サポートしているキーボードショートカットについて解説しているので参照していただきたい)。

 今回のアップデートでは、コマンドラインオプション、ドラッグ&ドロップのサポート、タブの順番入れ替え、PowerShell Coreの検出などが追加されている。これらの機能について解説していこう。

Windows Terminal v0.9の新機能

 Windows Terminalは、Microsoftストアアプリ(UWPアプリ)で、Microsoft Storeで「Windows Terminal」と検索することでインストールが可能だ。

Windows Terminalをインストールする Windows Terminalをインストールする
Windows Terminalは、Microsoft Storeで提供されている。Microsoft Storeを起動し、「Windows Terminal」と検索し、[入手]ボタンをクリックすればよい。

新機能のコマンドラインオプションに必須の「アプリ実行エイリアス」とは?

 Microsoftストアアプリには、「アプリ実行エイリアス」という機能があり、開発時に実行ファイル名を登録しておくことで、従来のWin32アプリケーションのようにexeファイル(実体は存在しない)をコマンドラインで指定しての起動が可能になる。

 ただし、Microsoftがアプリ実行エイリアス名を管理しているわけではないため、異なるアプリが同じ実行ファイル名を利用する可能性がある。このため、[Windowsの設定]アプリの[アプリ]−[アプリと機能]−[アプリ実行エイリアス]で、アプリごとにアプリ実行エイリアスを有効にするかどうかの設定が行える。

アプリ実行エイリアス名を確認する(1) アプリ実行エイリアス名を確認する(1)
[Windowsの設定]アプリを起動し、[アプリ]をクリックしたら、[アプリ]画面の左ペインで[アプリと機能]を選択する。右ペインの[アプリ実行エイリアス]をクリックすると、[アプリ実行エイリアス]画面に切り替わる。
アプリ実行エイリアス名を確認する(2) アプリ実行エイリアス名を確認する(2)
[アプリ実行エイリアス]画面には、エイリアスが設定されているアプリの一覧が表示される。エイリアスを無効にしたい場合は、スイッチを「オフ」にすればよい。アプリ名の下にはエイリアス名が表示されているので、これを見ることでエイリアスが確認できる。

 Windows Terminalは、「wt.exe」というアプリ実行エイリアスを利用する。コマンドラインオプションは、この「wt.exe」に起動パラメーターを指定するためのものだ。コマンドラインオプションは、比較的大きな仕様なので後で詳しく解説する。

ファイルのドラッグ&ドロップでパスを指定可能に

 ここで言う「ドラッグ&ドロップ」とは、エクスプローラーなどからの「ファイル」のドラッグ&ドロップに対応するものだ。ターミナル内のプログラムには、標準入力からパス文字列が渡される。コマンドラインなどでパス指定をする際に使うと便利だ。

PowerShell Core向けプロファイルをサポート

 PowerShell Coreは、オープンソース版のPowerShellだ。Windows 10付属のPowerShellとは違い、GitHubからインストールイメージをダウンロードしてインストールする必要がある。Windows Terminal v0.9は、このPowerShell Coreのインストールを検出してプロファイルを自動登録できる。

ドラッグ&ドロップでタブの入れ替えが可能に

 マウスを使ってドラッグ&ドロップでターミナルタブの順番の入れ替えができるようになった。Windows Terminalには、「次のタブ」(右隣のタブ)、「前のタブ」(左のタブ)に移動するキーボードショートカットが登録されているため、タブの順番を入れ替えることで移動を効率化できる。ただし、複数のWindows Terminalウィンドウを開いている場合に、ブラウザのタブページのようにWindows Terminalのタブをウィンドウ間で移動させることはできない。

その他の新機能

 その他、新しいプロパティとして「confirmCloseAllTabs」が追加された。これは、ウィンドウをクローズするなどの際に、複数タブがある場合に確認を行うかどうかを指定できる。「false」を指定すると、複数タブが開かれている場合でも、確認することなくWindows Terminalを終了させることができる。

コマンドラインオプションで起動時のタブやペインの制御が可能に

 コマンドラインオプションは、アプリ実行エイリアスである「wt.exe」で利用できる。複数のタブを開いたり、タブを複数のペインに分割したりするなどの指定が可能だ。これにより、エクスプローラーの右クリックメニューに「ここでWindows Terminalでcmd.exeを開く」といったメニュー項目を登録できるようになる。ただし現時点では、こうした設定はユーザーが手動で行う必要がある。

オンラインヘルプの表示方法

 オプションの書式は、オンラインヘルプの表示とサブコマンドを使った書式に分かれる。

wt.exe --help | -h | -? | /? [ヘルプを表示したいサブコマンド]


オンラインヘルプを表示するコマンドの書式

 記号文字「|」は「または」を表し、これで区切られたオプションのどれかを指定すればいいことを意味する(この記号自体はオプションではなく、オプションの書式を表現するための記号文字である)。つまり、「--help」「-h」「-?」「/?」のどれを指定しても同じく、メッセージボックスでオンラインヘルプが表示される。

Windows Terminalのオンラインヘルプを表示する Windows Terminalのオンラインヘルプを表示する
「wt.exe」に「-h」などのヘルプオプションを付けるとオンラインヘルプを示すウィンドウが開く。また、「-h」などの後ろにサブコマンドを指定するとサブコマンドに関するオンラインヘルプを表示する。

 オンラインヘルプは、後述するサブコマンドよりも優先度が高く、指定があれば、オンラインヘルプの表示になる。

 また、ヘルプオプションに続けてサブコマンドを指定すると(実際にはその前で指定しても)、サブコマンドのヘルプを表示する。また、エラーメッセージも同じくメッセージボックスでの表示となり、コマンドラインには表示されないので注意されたい。ただし、「wt.exe」は、「cmd.exe」などに対してエラーレベルは正しく渡しているようなので、Errorlevelを使ったエラー検出は可能である。

サブコマンドで起動時のタブやペインの状態を細かく制御

 サブコマンドを使う場合の書式は、以下のようにサブコマンドとサブコマンドの引数をセミコロン「;」で区切って複数指定できる。

wt.exe [サブコマンド] [引数]  [; [サブコマンド] [引数]]……


サブコマンドを使う場合の書式
角括弧「[」「]」は、省略可能な項目を示し、「...」は直前のパターンの繰り返しを意味する。

 サブコマンドには、「new-tab」(新規タブ)、「focus-tab」(タブ選択)、「split-pane」(ペイン分割)の3つがある。サブコマンドとその引数は、下表のようになっている。

意味 サブコマンド 引数 引数の解説
オンラインヘルプをGUIで表示   --help、-h、-?、/? [サブコマンド] [サブコマンド]で該当のヘルプを表示
新規タブ new-tab --profile、-p プロファイル名 プロファイルを名前、GUIDで指定
--startingDirectory,-d 開始フォルダ 開始フォルダを指定
コマンドライン 起動コマンド(シェル)を指定
既存のタブを選択 focus-tab --target、-t タブ番号 番号で指定したタブを選択
--next、-n 次(右側)のタブを選択
--previous、-p 前(左側)のタブを選択
新規ペイン(ペイン分割) split-pane --target、-t ペイン番号 分割対象のペイン番号
-H または -V 水平(-H)、垂直(-V)分割。指定なしはauto
--profile、-p プロファイル名 プロファイルを名前、GUIDで指定
--startingDirectory,-d 開始フォルダ 開始フォルダを指定
コマンドライン 起動コマンド(シェル)を指定
Windows Terminalのコマンド
赤文字は仕様にはあるもののv0.9では未実装な機能を表している。

 new-tabサブコマンドは、新規タブを作るもので、オプションでプロファイルや起動時のディレクトリ(開始フォルダ)、起動時に実行したいプログラムなどが指定できる。

 なお、「wt.exe」では、new-tabサブコマンドは省略可能となっていて、サブコマンドが先行しないオプション指定ではnew-tabサブコマンドが省略されていると見なされる。

 プロファイル(Windows Terminalの設定ファイル。詳細は後述)は、インデックス番号(設定ファイル内の位置。先頭がゼロ)、GUID、Nameプロパティのどれかで指定が可能だ。

 開始フォルダは、「--startingDirectory」または「-d」のどちらかで指定できる。ここで注意すべきは、「wt.exe」のコマンドラインでは、「\(円マーク、英語モードなら逆スラッシュ)」がエスケープ文字となっているため、ファイルパスの区切り文字は「\\」と指定する必要があることだ。

 また、タブ内で起動するプログラムをコマンドラインとして記述できる。これは、プロファイル指定のcommandlineプロパティと同じ意味を持つ。

 focus-tabサブコマンドは、既に存在しているタブを選択状態とするものだ。左端からのインデックス番号、または次や前のタブの指定が行える。前述のnew-tabで複数のタブを開いた後に、そのうちの1つを選択するときに使う。

 split-paneサブコマンドは、選択中のタブにある指定ペイン(ペインには分割ごとにインデックス番号が割り当てられる)を分割するものだ。「-H」で水平分割、「-V」で垂直分割が可能で、この2つをどちらも指定しない場合は「auto」分割が仮定され、縦横のどちらか長い方を分割する。例えば、縦長のペインであれば、水平分割になる。その他のオプションは、new-tabと同じである。

 複数のサブコマンドを指定する場合、「;(セミコロン)」でサブコマンド間を区切る。セミコロンがないと、サブコマンドなのかnew-tabサブコマンドのコマンドライン指定の一部なのかが不明になるからだ。一方、コマンドラインなどでセミコロンを指定したい場合には、エスケープ文字である\を使って「\;」と指定する。

コマンドラインを試してみる

 コマンドラインを使っていろいろなパターンを試してみよう。次のコマンドラインは、Windows Terminalを起動し、左側が上下に2つ、右側が1つの合計3つのペインでcmd.exe、WSL(Ubuntu)、PowerShellを起動するものだ。

wt.exe new-tab -p "cmd" ; split-pane -V -p "Ubuntu" -d "/" ; split-pane -H -p "powershell"


3つのペインでcmd.exe、WSL(Ubuntu)、PowerShellを起動するコマンド

コマンドラインで複数タブを開いた状態でWindows Terminalを起動 コマンドラインで複数タブを開いた状態でWindows Terminalを起動
コマンドラインを使うと複数のタブだけでなく、タブ内をペインに分割できて、複数の実行環境を同時に起動することも可能だ。

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。