Cmd.exe
コマンドプロンプトに内蔵されている内部コマンド(typeやdirなど)はUnicode出力とANSIコードページ出力の両方に対応しており、単独で実行して画面に表示する場合はUnicodeで出力される。ただし内部コマンドの出力先が画面以外(リダイレクトやパイプ)である場合は、現在のANSIコードページに変換して出力する。この挙動はcmd.exeのデフォルト(/Aオプション)設定時の動作であり、/U オプションを付けて起動することでUTF-16出力に変更することが可能である。バイト順マーク (BOM) はテキストとして保存した場合に必要なものであるため付与されない。
Windowsではアプリケーションソフトウェアの一形態として、コマンドラインインターフェイス (CLI) を持つ「コンソールアプリケーション」があり、これは単独で動作させることができるだけでなくコマンドプロンプト上で動作させることもできる。これにより、ユーザーが外部コマンドとして独自のコマンドを開発し、リダイレクトやパイプを駆使してバッチ処理に応用することができる。
外部コマンドが出力する文字コードはその外部コマンドの実装によって異なり、一般にコマンド開発者はCLIコマンドの出力をUnicodeモードで行なうか、MBCSモードで行なうかを選ぶことができる。例えばC言語の場合は_setmode()関数を呼び出すことで設定できる。.NET Frameworkの場合はSystem.Console.