単二電池

.NET Framework 2.0と同時にインストールされるツールの1つに
「MSBuild」というのがあります。

このツールの詳細については省略させていただきますが、簡単に
述べると、c# や vb.net で記述したソースをコンパイル(ビルド)し
.NETプログラムを生成します。

この「MSBuild」を実行すると、ビルドの結果が出力(表示)される
のですが、その出力結果が所々文字に色が付いているのです。
(参考:)
MSBuildを活用して開発時の作業を自動化する
http://codezine.jp/a/article/aid/674.aspx
本文「3. 「1.Simple.bat」を実行して、ビルドを実行する。」の下
にある画像を参照。

それで、質問なのですが、バッチプログラム等、dosコマンド(echo等)
ででも、この様な文字に色を付けて出力(表示)って出来るんでしょうか?

colorコマンドでは、全ての文字の色が変わってしまって、ある部分
だけに色をつけるという事ができないようだし。

ご存知な方、いらっしゃりませんでしょうか。

A 回答 (3件)

MSBuild は、ansi.sys を利用して文字に色を付けているのではなく、Win32 API の SetConsoleTextAttribute() を直接呼び出して色を付けているのだと思われます。

    • good
    • 0

「ファイル名を指定して実行」でcommand.comを実行すればエスケープ文字で色変更可能。



ただし、No1さんのおっしゃるとおりANSI.SYSを組み込む必要があります。
編集するファイルは「C:\SysemRoot\System32\CONFIG.NT」
最後のほうに「device=%SystemRoot%\system32\ANSI.SYS」「dosonly」を追記してください。

この回答への補足

回答、ありがとうございます。

「コマンドプロンプトでエスケープ文字を使うには」
でWebを検索すると、takepon256さんが示して頂いた通り、
「config.nt」「ansi.sys」「command.com」の
キーワードが載ったWebページがいくつか見つかるのですが。

そこで、疑問が。

1) スタートメニューの「コマンドプロンプト」を起動。ショートカットを
確認し、「cmd.exe」が起動されている模様。
2) この起動したコマンドプロンプトで、「MSBuild」を実行しても、
文字色が部分的に変わっている。
3) でも、「C:\Windows\System32\Config.nt」は書き換わっている
様子はない。

という事は、既に起動しているコマンドプロンプト(cmd.exe)に
対しても、「ansi.sys」を組み込む事が可能??

dosについては、殆ど応用力がないので、もしかすると、基本的な事を
聞いているのだと思いますが。。。

補足日時:2008/03/17 10:05
    • good
    • 0

CMD.EXEでは出来ないはずです。



Windows9xのDOSプロンプトではANSI.SYSというコンフィグファイルを組み込むとで、文字ごとに色を付けることが出来ましたが、WindowsNT/2000/XP/2003/VistaのCMD.EXEにはそういう機能はありません。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!