web-dev-qa-db-ja.com

非ASCII文字セットを使用してWindows10で非レガシーコマンドプロンプトのフォントを変更する-プロパティとデフォルト値?

私はWindows10の新しいコマンドプロンプトをいじっています。私はコードページ936(GBK)を使用しています。

cmdのプロパティにrun legacy command Prompt (need restart)のチェックがあり、デフォルトではチェックされていないので、「新しい」と言います。したがって、私が使用しているのは「新しい」だと思います。

問題は、Webを検索すると、レジストリにフォントを追加してlegacycmdを作成し、それを認識して「プロパティ」に表示する方法しか得られないということです。次のような「デフォルト値」設定:

http://www.techrepublic.com/blog/windows-and-office/quick-tip-add-fonts-to-the-command-Prompt/

次の場所に表示されている場所にフォントエントリを追加することに言及しています。

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont

windowsにこのフォントを認識させるため。すでにリストされているフォントは、従来のcmdで表示できるものと同じであることに注意してください。通常のcmdでは、より多くのフォントが表示されます。

enter image description here

写真では、いくつかのターミナルフォントを使用してレガシーcmdプロンプトを開き、[プロパティ]設定ダイアログで、レジストリと同じように、選択できるフォントはConsolasとLucidaConsoleであることに注意してください。

また、通常のcmdに切り替えると、次の2つの場合があります。

  1. 「プロパティ」を編集することを選択すると、フォントが少なくなり、変更が機能します。
  2. 「デフォルト値」を編集することを選択した場合、より多くのフォントが表示されますが、変更は有効になりません。

プロパティ内:

enter image description here

ここでYahei Consolas Hybridと他のフォントのどちらかを選択でき、cmdは私の設定を尊重し、すぐにフォントを変更します。

デフォルト値:

enter image description here

Dejavu Sans MonoMonacoなど、より多くの等幅フォントをここで確認できますが、これらのフォントにcmdを変更することはできません。

ここでの違いはわかりませんが、意味がありません。 「プロパティ」と「デフォルト値」は同じであるため、混乱が生じることは言うまでもなく、尊重できない設定が存在してはなりません。

私が欲しいのは、通常のcmdのフォントをMonacoまたはDejavu SansMonoに変更することです。不可能な場合は、レガシーcmdで。

ちなみに、「プロパティ」と「デフォルト値」の違いを誰かが明確にできれば素晴らしいと思います。

4
WesternGun

今、私は答えを見つけました、助けてくれてありがとう。誰かがより良い答えを投稿できるかどうかを確認するために、私は1週間以内に自分の答えを受け入れません。

問題はコードページにあります。 Windows 10のデフォルトの表示言語を簡体字中国語に設定し、GBKコードページ(936)を使用しました。したがって、cmdウィンドウでは、システムはすべての情報を中国語で表示することを意図しています。実際、質問に投稿した最初の画像では、ヘルプ情報の最初の行が中国語で表示されていることがわかります。

中国語で何かを表示するには、漢字のヒント情報を提供する適切なフォントを見つける必要があります。どうやら、Windowsはすべてのフォントを事前にチェックして、現在のコードページ文字のサポートを確認しているようです。設定されたフォントが中国語をサポートしていないことがわかると、このフォントは破棄され、デフォルトのフォントにフォールバックします。 また、デフォルトパネルのフォント設定リストからこのフォントを削除します。Yahei Consolas Hybridは英語と中国語の両方をサポートしているため、デフォルト設定とプロパティ設定のリストに表示できます。ただし、MonacoDejavuは[デフォルト]パネルから消えましたが、[プロパティ]パネルには残ります。

プロパティのフォントリストもクリアされないのはなぜですか?コメントにあるように、「プロパティ」は現在のcmdウィンドウ/セッションに適用されますが、「デフォルト」設定は後続のすべてのcmdセッションを制御します(例:よりグローバル)。 ユーザーが実行時にコードページを変更した場合、フォントリストでプロパティを再度チェックする必要がなく、ユーザーがフォントを直接変更できるようにします。それが私の場合に起こることです。私は、Windowsがここで多くのバックグラウンド作業を行ったと言わなければなりません。

次のスクリーンショットで、コードページをchcp 1252で変更し、フォントの変更がすぐに有効になることがわかります。今はMonacoです。

enter image description here

したがって、質問は次のようになります。「cmdウィンドウの開始時にコードページを変更するにはどうすればよいですか?」そして、私は非常に有用な質問を見つけました:

WindowsコンソールのデフォルトのコードページをUTF-8に変更

そして、私は次のように変更を簡略化します。

  1. .regファイルを作成し、必要に応じて名前を付けます。
  2. これらの行をファイルにコピーして保存します。

次のように入力するだけです。

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor]
"Autorun"="chcp 1252>>nul"

1252は他の値にすることができます。 >>nulは印刷を避けるためのものです

Active code page: 1252

cmdを起動するたび。

  1. ファイルを実行して設定をインポートします。
  2. cmdを実行します。これで、プロパティでフォントを簡単に設定できます。 (デスクトップのリンクから実行する場合、フォントはSimsunですが、タスクバーのアンカーから実行する場合はYahei Consolas Hybridです。理由はわかりません。しかし、あなたはフォントを変更するだけです。

ただし、デフォルトのフォントをデフォルトに設定しても、その後のcmdのセッションでは機能しません。それでもSimsunに分類されるため、「コマンドを開いてMonacoフォントを使用する」ことはできません。 Windowsは、フォントを使用した「自動実行」コードページではなく、フォントを使用して現在の言語コードページをチェックするためだと思います。、デフォルトの言語を変更すると、動作していますが、それは私が望んでいることではありません。私はまだこのトピックに取り組んでいます。

3
WesternGun

リージョン設定(リージョン/管理[タブ名]、次にシステムロケールの変更...)に、「ベータ版:世界中の言語サポートにUnicodeUTF-8を使用する」というチェックボックスがあります。それをチェックしてください、そしてそれはおそらくうまくいくでしょう。私は現在、Windows10ビルド17134.165を使用しています。