コマンドプロンプトの設定を把握しよう
公式ブログにて、コマンドプロンプト設定に関するノウハウが公開されています。設定が読み込まれる順番
コマンドプロンプト(コンソール)の設定は、以下の順番で読み込まれます。- conhostv2.dllでハードコーディングされている設定
- レジストリーの「HKCU\Console」以下に設定されているユーザー向けのデフォルト設定
- レジストリーの「HKCU\Console\<sub-key>」以下に設定されているコンソールアプリごとの設定
- Windowsショートカット(.lnk)の設定
「3.」の「<sub-key>」に関しては、以下のいずれかのキーでコンソールアプリを識別します。
- コンソールアプリのパス(パス内に含まれる「¥」は「_」に置き換えられます。)
- コンソールタイトル
コンソールアプリ起動時、Windows Console Hostはコンソールの詳細情報を読み込むことで、どの設定を使用するのかを決定します。
この時、上記で示した順番で上から下に向かって読み込み対象になった設定が読み込まれ、同じ設定は後から読み込まれた設定で上書きされます。
例えばショートカットからコマンドプロンプトを起動すれば、そのショートカットに指定されている設定が最優先されるということです。
設定そのものがなされていない場合、その設定は読み飛ばされます。
ただしショートカットファイルに保存される設定は、デフォルト値と同じかどうかに関わらず、各設定が保存されます。
既定値とプロパティ
コマンドプロンプトの設定には、「既定値」と「プロパティ」の2種類の設定項目があります。既定値
「既定値」の画面で行った設定は、上記の「2.」に設定が保存されます。プロパティ
「プロパティ」の画面で行った設定は、上記の「3.」もしくは「4.」に設定が保存されます。「3.」と「4.」のどちらに設定が保存されるのかは、コンソールアプリがどのように起動されたかで変わってきます。
コンソールアプリが直接起動された場合
「ファイル名を指定して実行」などコンソールアプリが直接起動された場合、「プロパティ」の画面で行った設定は、「3.」に保存されます。ショートカットからコンソールアプリが起動された場合
コンソールアプリがWindowsのショートカットファイルから起動された場合、「プロパティ」の画面で行った設定は、「4.」に保存されます。つまり設定はショートカットファイル内に保存されます。
ショートカットを右クリックし表示されるメニューから「プロパティ」をクリックし、各種設定を行うことも可能です。
レジストリーの設定
コマンドプロンプト(コンソール)に関する各種設定を紹介します。値の名前 | 値の種類 | 概要 |
---|---|---|
FontSize | Coordinate (REG_DWORD) |
フォントサイズをピクセルで指定 |
FontFamily | REG_DWORD | GDIフォントファミリーを指定 |
ScreenBufferSize | Coordinate (REG_DWORD) |
スクリーンバッファーのサイズを横x縦の文字数で指定 |
CursorSize | REG_DWORD | カーソルの高さを文字の高さの%で指定 |
WindowSize | Coordinate (REG_DWORD) |
ウィンドウの初期サイズを横x縦の文字数で指定 |
WindowPosition | Coordinate (REG_DWORD) |
ウィンドウの初期位置を横x縦のピクセル数で指定 設定されていない場合、自動的に初期位置を決定する |
WindowAlpha | REG_DWORD | ウィンドウの透過度を0x4D〜0xFFの間で指定 |
ScreenColors | REG_DWORD | デフォルトの文字色と背景色を指定 |
PopupColors | REG_DWORD | F2キーを押したときに表示されるようなポップアップの文字色と背景色を指定 |
QuickEdit | REG_DWORD | デフォルトでQuickEditを有効にするか無効にするかを指定 |
FaceName | REG_SZ | フォント名を指定 __DefaultTTFont__を指定すればコードページに応じて適切なフォントを自動的に選択する |
FontWeight | REG_DWORD | GDIフォントウェイトを指定 |
InsertMode | REG_DWORD | デフォルトで挿入モードを有効にするか無効にするかを指定 |
HistoryBufferSize | REG_DWORD | 保持するコマンドの履歴バッファーサイズを指定 |
NumberOfHistoryBuffers | REG_DWORD | 保持するコマンドの履歴バッファー数を指定 |
HistoryNoDup | REG_DWORD | 重複する古い履歴を破棄するかどうかを指定する |
ColorTable%% | REG_DWORD | 16色の画面の色をRGB値で指定 %%には0〜15までの値が入る |
ExtendedEditKey | REG_DWORD | テキスト選択キーを有効にするかどうかを指定 |
WordDelimiters | REG_SZ | CTRL+SHIFT+ARROWキーで文字列を選択する際、区切り文字として識別する文字を指定 '.-/\=|,()[]{}'のように指定可能 デフォルトではスペース文字のみ区切り文字として認識される |
TrimLeadingZeros | REG_DWORD | 文字列コピー時、先頭に含まれる0を削除するかどうかを指定 |
EnableColorSelection | REG_DWORD | 文字列選択時のカラーリングを行うかどうかを指定 |
ScrollScale | REG_DWORD | Shift+ホイールスクロール時にスクロールする行数を指定 |
CodePage | REG_DWORD | デフォルトのコードページを指定 |
ForceV2 | REG_DWORD | 改善されたWindows Console Hostを使用するかどうかを指定 |
LineSelection | REG_DWORD | 行の選択が可能かどうかを指定 この設定は改善されたWindows Console Hostでのみ有効 |
FilterOnPaste | REG_DWORD | 文字列の貼り付け時、Wordのスマートクォートを通常のクォートに変換するなど文字列のフィルターを有効にするかどうか指定 この設定は改善されたWindows Console Hostでのみ有効 |
LineWrap | REG_DWORD | 長い行を複数行に分割するかどうかを指定 |
CtrlKeyShortcutsDisabled | REG_DWORD | 新しいCtrlキーのショートカットを無効にするかどうかを指定 |
AllowAltF4Close | REG_DWORD | Alt+F4ホットキーを有効にするかどうかを指定 |
VirtualTerminalLevel | REG_DWORD | Windows Console Hostが提供するVTのサポートレベルを指定 |
OSのアップグレード時に設定がリセットされる
新しいWindowsのバージョンへWindowsをアップグレードすると、システム所有のショートカットやスタートメニューの各項目の設定が、デフォルトの設定にリセットされます。開発チームは、コンソールの設定をもっと簡単にそして管理し易くするためのツールを開発中です。
ツールの開発が終わった後、そのアナウンスが行われる予定です。