cmd.exeでタイトルバーにカレントパスを表示させる
cmd.exeでは、コマンドラインでエスケープコードを扱うのが難しい。しかし、プロンプトのカスタマイズ機能からはエスケープシーケンスが利用できる。これを利用すると、カレントディレクトリをタイトルバーに表示することが可能になる。それには、Promptコマンド(cmd.exeの内部コマンド)を使って、
prompt $E]0;$P$E\$E[42;30m$N:$E[39;49m$G$S
とする。
プロンプト指定では$Eでエスケープコードを指定することが可能だ。タイトルの変更は先頭部分の「$E]0;$P$E\」で行なっており、「$P」はカレントディレクトリを示すPromptコマンドの記号である。
後半の「$E[42;30m$N:$E[39;49m」は、ドライブ文字を緑色の背景に黒い文字で表示するためのもの。最後の「$G$S」は、「>」記号とスペースに変換されて表示される。詳細は、promptコマンドのヘルプ(prompt /?)を参照いただきたい。
もし、こうして作成したプロンプトをいつも使いたい場合には、setxコマンドで、デフォルトのユーザー環境変数値として設定しておくとよい。
setx PROMPT $E]0;$P$E\$E[42;30m$N:$E[39;49m$G$S
ここで「PROMPT」は、コマンドではなく環境変数の名前である。コンソールウィンドウをすべて閉じれば、次回からcmd.exeの標準プロンプトが指定したものになる。もちろんconhostウィンドウでも、Windows Terminalでも同じように使える。
PowerShellの場合、プロンプトは、Prompt関数で表示しているのでこれを書き換える。手順としては、$PROFILEで指定されている起動スクリプト(プロファイル)を編集してPrompt関数を記述する。こちらは関数の編集なので、ちょっと敷居が高い。別の機会に解説させてほしい。
Windowsで扱うファイルやディレクトリは、以前に比べると長いものが多く、プロンプトにパスを表示させてしまうと、その長さがコンソールの半分以上になってしまうことが多い。bashにはパスを「はしょる」機能があるのに、cmd.exeにはこうした機能がない。
こうした場合、タイトルバーにパスを表示させれば、コンソール内が有効に利用できる。また、コンソールを複数開いて作業するときなど、自分でタイトルを書き換えておくと、区別がしやすい。意外に見過ごされがちな場所だが、有効に使うと作業効率を改善できる。
この連載の記事
-
第458回
PC
Windows上でhostsファイルを活用する -
第457回
PC
IPv6アドレスは先頭を見ればどんな種類かわかる -
第456回
PC
あらためてIPv6基本のキ -
第455回
PC
Windowsで現在どのネットワークアダプタがインターネット接続に使われているかを調べる方法 -
第454回
PC
Windows 11 24H2では「デバイスの暗号化」の条件が変わり、より多くのPCでドライブが暗号化される -
第453回
PC
Windows 11 24H2の配布開始後もすぐにはやってこない Windows UpdateとSafeguard Holds -
第452回
PC
Windows 11 Ver.24H2が登場 Copilot+ PCとそうでないPCで実質Windowsが2つに分かれる -
第451回
PC
新しいWindowsサンドボックスではコマンドラインからの制御が可能に -
第450回
PC
ユニコードで文字数を数える方法 -
第449回
PC
WSLはプレビュー版でGUIでの設定が加わった! リリース2.3.xの新機能を見る -
第448回
PC
PowerShellで面倒なオブジェクトはPSCustomObjectに変換するのが早道 - この連載の一覧へ