閑古鳥

オールドプログラマの日記。プログラミングとか病気(透析)の話とか。

CLIの予習

これまでずっとGUIばかりやっていましたが、来年はCUIもやっていくことになりそうなのでとりあえずMS Docsなど眺めています。

docs.microsoft.com

標準出力にエスケープシーケンス(\x1b)を渡すことで文字の色を変えたりすでに出力している文字を消したりできる。プログレスバー的なのはこれで実装しているわけですね(サイトによっては \033だったりもしますが、こちらは8進数で意味は同じ)。

PowerShellだとデフォルトでこれに対応していないようですが、SetConsoleModeでENABLE_VIRTUAL_TERMINAL_PROCESSINGを設定してあげれば良いようです(SamplesのEnableVTModeがまんま流用できる)。

コードの一覧はWikipediaの方が見やすくまとまっているかも。

en.wikipedia.org