TL;DR
プロンプトとはシェルが対話モードで出力するubuntu@ubuntu:~ $
のような文字列のことで、環境変数PS1
で設定されます。Linux界隈ではずいぶん前からシェルのプロンプトをカスタマイズすることが流行っています。
Windowsでコマンドラインを使う場合はWSLやmsys2などを入れてしまうので、コマンドプロンプトをそのままガッツリ使うことはあまりないのかもしれませんが、cmd.exeのプロンプトをいろいろいじってみることでWindowsでのコマンドラインライフがより楽しいものになるかもしれませんよ?
prompt
コマンド
prompt
コマンドでプロンプトを変えることができます。試しに何か入れてみましょう。
prompt hello,windows!
次にパラメータを試してみましょう。
prompt $v:$p$s
prompt
の引数
prompt
コマンドの引数は
prompt <text>
と、非常にシンプルです。
また、引数なしで
prompt
を実行すると、プロンプトがリセットされます。
使えそうなパラメータいろいろ
他のコマンド同様、prompt /?
でいろいろなパラメータを確認できますが、その中でも使えそうなものを試してみましょう。
パラメータ | 説明 | 例 |
---|---|---|
$t |
時刻 | 1:56:10.07 |
$d |
日付 | Thu Sep 03 |
$p |
ドライブおよびパス | C:\Windows\System32 |
$n |
ドライブのみ | C:\ |
$_ |
改行 | |
$s |
スペース |
個性的なプロンプトを作る
また、ASCII文字だけではなく、フォントがグリフを持っていればこんな感じのプロンプトを作ることもできます。
prompt $p$s❱$s
cmd.exeの引数として実行
手でタイプするのではなく、cmd.exeの引数に指定して実行させる場合は/k
スイッチを使います。/k
スイッチを指定すると、コマンドを実行した後は対話モードのまま待機状態になります。
cmd.exe /k prompt $p$s❱$s
Windows Terminalの設定
{
"guid": "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}",
"name": "Command Prompt",
"commandline": "cmd.exe /k prompt $p$s❱$s",
"hidden": false,
"colorScheme": "Campbell"
},
もちろん、絵文字も表示できます。prompt
コマンドに入力するときに文字化けしたりと、ちょっとおすすめではないですが。
prompt 🌻🌼🌹$s
VS Codeでこそプロンプトをカスタマイズしよう
ところで、皆さんはVS CodeでどこにIntegrated Terminalを表示させていますか?
VS CodeのIntegrated Terminalはサイドパネルにドラッグアンドドロップすることができます。でも、そのままではサイドパネルが狭く、C:\Users\...\...\...\
と長いパスが表示されてしまい、見づらくなってしまいます。
そこで、$_
でパスとコマンド入力行の間に改行を入れてみましょう。
prompt $p$_❱$s
VS Codeの設定
"terminal.integrated.shell.windows": "C:\\Windows\\System32\\cmd.exe",
"terminal.integrated.shellArgs.windows": "/k prompt $p$_❱$s",
prompt /?
Changes the cmd.exe command prompt.
PROMPT [text]
text Specifies a new command prompt.
Prompt can be made up of normal characters and the following special codes:
$A & (Ampersand)
$B | (pipe)
$C ( (Left parenthesis)
$D Current date
$E Escape code (ASCII code 27)
$F ) (Right parenthesis)
$G > (greater-than sign)
$H Backspace (erases previous character)
$L < (less-than sign)
$N Current drive
$P Current drive and path
$Q = (equal sign)
$S (space)
$T Current time
$V Windows version number
$_ Carriage return and linefeed
$$ $ (dollar sign)
If Command Extensions are enabled the PROMPT command supports
the following additional formatting characters:
$+ zero or more plus sign (+) characters depending upon the
depth of the PUSHD directory stack, one character for each
level pushed.
$M Displays the remote name associated with the current drive
letter or the empty string if current drive is not a network
drive.