2016-12-18 14 views
0

私は最近、先日質問したことのあるクイックレスポンスに圧倒されました!うまくいけば、これは知っている人のための速いものになるだろう、私は何時間も検索して遊んだだけでそれを取得していない。バッチCMDのASCII文字の1行のカラーを

バッチCMDで文字を変更するコードが見つかりましたが、ASCII文字では機能しません。

これは、エラーのノウハウ出力ウィンドウを示しています

@echo off 
SETLOCAL EnableDelayedExpansion 
for /F "tokens=1,2 delims=#" %%a in ('"prompt #$H#$E# & echo on & for %%b in (1) do rem"') do (
set "DEL=%%a" 
) 

call :colorEcho 0a "This works!!" 
echo. 
call :colorEcho 0C "But ASCII characters don't" 
echo. 
echo expect this in set color 
echo. 
echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» 
echo º        º 
echo º        º 
echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ 
echo.  
echo but get this instead? 
echo. 
call :colorEcho 0a "ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»" 
echo. 
call :colorEcho 0a "º        º" 
echo. 
call :colorEcho 0a "º        º" 
echo. 
call :colorEcho 0a "ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ" 
pause 
exit 

:colorEcho 
echo off 
<nul set /p ".=%DEL%" > "%~2" 
findstr /v /a:%1 /R "^$" "%~2" nul 
del "%~2" > nul 2>&1i 
+0

使用しているコードページはありますか。スクリーンショットの文字はバッチファイルの文字とは異なります。 [ansicon](https://github.com/adoxa/ansicon)を使用して、Windowsのシェルスクリプトで文字を着色することができます。 – user2956477

+0

申し訳ありません、私は非常にこれに新しく、何を求めているのかわかりません。私が知っているのは、デフォルトのANSIIエンコーディングでバッチファイルを保存したときに出力がスクリーンショットに表示される文字になります。うまくいけば、これはあなたの求めるものですか? もし可能であれば、私は外部プログラムなしでこれを行うことを望んでいます。 あなたの助けをありがとう – ryan

+3

[Windowsのバッチファイルに複数の色を表示するにはどうすればいいですか?](http://stackoverflow.com/questions/4339649/how-to-have-multiple-colors-in-a- – SomethingDark

答えて

1

は、私のようだ:
screenshot

ここに私が起こって、何イムしようといただきました!それは正確に説明し、合わせて変更しようとしたコードです解決策は、私が停止し、それについて考えた後、私が予想していたよりも簡単でした。

私はすべての拡張アスキー文字を同じ色にする必要があるので単純です。 colorEcho私の元のスクリプトから:

変更ページ全体は、私はシンプルな色の機能を使用して、メニューの境界線(拡張ASCII文字)が

、その後は個別に呼び出しを使用して、すべてのテキストを色付けしたい何色と一致します。

ありがとう

+0

+1シンプルで巧妙な解決策です - 私はそれが好きです! [この回答 - 2012-12-14セクションを更新](http://stackoverflow.com/a/10407642/1012053)の下部に多色拡張ASCIIの解決策がありますが、かなり遅くなります。 – dbenham