Cygwinをインストールし(あまり経験がありません)、そこからネイティブのWindowsシェルアプリケーションを実行しようとしました(正確には、.NETフレームワークのビルドツールであるmsbuild.exe)。
通常のcygwinbashシェルからアプリケーションを実行すると、アプリケーションの出力は、Windowsコマンドラインで通常表示されるテキストの色で表示されます。
しかし、mintty端末からプログラムを実行すると、出力の色は表示されず、すべてのテキストがデフォルトの前景色になります。色分けが標準のANSI色分けエスケープ文字であると期待していたので、私は困惑しています...
これは修正できますか?
アプリケーションは、ANSIカラーシーケンスではなく、WindowsコンソールAPIを使用している可能性があります。 MinttyはWindowsコンソールラッパーではなくUnixターミナル(Cygwinのpty実装に基づく)であるため、これらのコンソールAPI呼び出しは効果がありません。
現在、これをminttyで機能させる方法はありませんが、問題に対処する方法についてはさまざまなかなり複雑なアイデアがあります http://code.google.com/p/mintty/issues/detail?id= 56 。一方、回避策は、コンソールウィンドウで問題のプログラムを開始することです。 'cygstart'ユーティリティはそれを行うための便利な方法です。
ネイティブWindowsコンソールプログラムは、minttyなどのCygwinターミナルエミュレーター内ではうまく動作しないことがよくあります。説明については、 Cygwinのドキュメント を参照してください。色が見えないことは、考えられる症状の1つです。さらに悪い症状は、アプリケーションに入力できないことです。
組み込みのコンソールよりもはるかに優れた代替コンソールプログラムがあります。 Windowsでの現在の端末の選択は、cygwinまたはstdioプログラムの場合はminttyであり、Windowsコンソールプログラムの場合は console2 です。このトピックは、このサイトですでに数回議論されています。
Windows用の高度なコマンドライン編集?
https://superuser.com/questions/87441/alternative-windows-command-Shell-and-console
Windows "cmd"置換
通常のコピーペーストによる無料のcmd/powershell置換
Minttyの代わりにbash.exeを使用できます。
Cygwinのショートカットを右クリックし、C:\ cygwin64\bin\mintty.exe -i /Cygwin-Terminal.ico-からC:\ cygwin64\bin\bash.exe --login-iに変更します。