[前の記事]« ファイルが存在しないディレクトリの一括削除
[次の記事]指定されたパスが見つかりません »

関連オンラインソフト配布サイト:
Vector>ダウンロード(top) |>MS-DOSまたは汎用 | >WindowsVista/XP/2000/NT

▲カテゴリー「アプリケーションとコマンド・プロンプト」索引へ

ECHO で表示する文字の色を変えるには(エスケープ・シーケンスについて)

434) ECHO で呼び出す文字色を変える taptap 2004/05/03(月) 01:07


環境は win98です。
エスケープシーケンスを使用して
echoで、文字色を変えるサンプルをみつけたのですが、
特殊文字を使っており、はりつける事はできても
自分のバッチファイルで使おうとしても
うまくいきません。

echo 33 黄色の文字
の、[の前の部分なんですが。

PROMPT コマンドでなら、『$E[』 
で、色は変わるのですが..
アスキーコードなどで
特別な入力方法があるのでしょうか?


436) Re:ECHO で呼び出す文字色を変える oo 2004/05/05(水) 00:08


>環境は win98です。
>エスケープシーケンスを使用して
>echoで、文字色を変えるサンプルをみつけたのですが、
>特殊文字を使っており、はりつける事はできても
>自分のバッチファイルで使おうとしても
>うまくいきません。

>echo 33 黄色の文字
>の、[の前の部分なんですが。

>PROMPT コマンドでなら、『$E[』 
>で、色は変わるのですが..
>アスキーコードなどで
>特別な入力方法があるのでしょうか?

ESC またの名 ctrl [ のコードです。エディタによってはコントロール文字を入力する機能を持っている場合もあるし無い場合もあります。メモ帳のようにそういう機能が無くても、 上の矢印で表示されている文字をコピーして張り付けることは出来ると思いますが(メモ帳画面上では黒四角に見える)、Win98は使ったこと無いのでもし かしたら貼り付けも出来ないのかも。その場合、
echo exit | command /k prompt echo $E[33m > abc.bat
を実行すれば、abc.bat に echo  exit という行が入るので、それを元に何とかするか。

ちなみに、EmEditorフリー版では、ctrl [ で入力できました([のリバースに見える)。


438) Re:ECHO で呼び出す文字色を変える YanaKen 2004/05/05(水) 12:17


taptabさん こんにちは。ooさんのコメントと重なりますけど……

>echo 33 黄色の文字
>の、[の前の部分なんですが。
 この発言内にはESCがちゃんと書き込めてますね。ということは、この文字をコピー&ペーストできる環境をすでにお持ちだということのように思えるのですけど……。

 見た目がどういう表示であっても(実際、制御文字が画面上でどう表示されるかはソフト次第で一定してません)、とにかく文字としてそのまま扱ってくれるソフトでバッチファイルを書くぶんには、コピー&ペーストで扱うことは可能だと思います。

 または、新たに入力したい場合や能率を上げたい場合、Windows98標準環境上でのおすすめはコマンド・プロンプト上のテキストエディタ「EDIT」です。
 EDITを起動したら、入力したい位置で Ctrl+P を押すと、制御コードの入力モードに入ります。直後に「Esc」キー(またはCtrl+[)を押してください。見た目には「Enter」のかたち(折れ曲 がった矢印)の記号文字が入ります。これがエスケープ文字です。

 その他、市販/フリーの「テキストエディタ」では、たいてい何かしらの方法で制御コード入力をサポートしていることが多いはずです。ぼくは近年もっぱら「WZ Editor」ですけど、このソフトの場合は「挿入→制御コード」のメニューで入力できます。

YanaKen


439) Re2:ECHO で呼び出す文字色を変える taptap 2004/05/05(水) 13:49


yanaken様 oo様、ありがとうございました。
エディターも検索してたのですが
見つからなくて困ってました。

DOSバッチと、WSHの勉強中で、
エスケープシーケンスの使い方がでてきて、
下の例に行き当たり
コピーで貼りつけるのはできたのですが、
コード作成中に、キーボードからの
入力方法がないかなと悩んでました。

HTMLなら、アスキーコード表から
特殊文字を書き込めますが、
バッチやWSCのコードには使えないのですかね。
この記号ってキャラクターコードでは
1Bh(27) とか表記されていたり、、
自分でも色々探したところ、バイナリエディタで
『1B』と入力して、txtファイルで出力する方法も
見付けたんですが.. で、これってプロンプトでは
$Eと同じことなのかな.. ECHOだから
$Eが無効になっただけで..(+_+)
もっと勉強しますので
ともかく今後とも宜しくお願いします。


443) Re3:ECHO で呼び出す文字色を変える YanaKen 2004/05/06(木) 11:41


taptapさん どうもです。

>この記号ってキャラクターコードでは
>1Bh(27) とか表記されていたり、、

「なお混乱中」とのことなので少し整理しますと、「エスケープ」(以下ESC)文字のキャラクタコードは16進(00~FF)でいえば1BH、10進数(0~255)でいえば27番になります。

 キャラクタコードを16進表記するバイナリエディタであれば、おっしゃる通り「1B」と表示されるのがESCということになりますネ。

 PROMPT コマンドでは、プロンプト表示のたびにESCを画面に出力する機能を$Eで指定できますが、これはあくまでもPROMPTコマンド専用のオプションです。 ECHOコマンドにはこのようなオプションはありませんので、ECHOコマンド内で$Eと書いても"$E"と表示されるだけです。
 ただしESCそのものをそのまま埋め込んで使うことはできたと思いますが、もう1つ、「ANSIエスケープ・シーケンスを用いたテキストファイルをあらかじめ作っておき、バッチファイルからはTYPEコマンドで画面に表示する」みたいな使い方もポピュラーです。

※当サイトでもANSIエスケープ・シーケンスの資料を提供してますので、お役立てください。
http://fpcu.on.coocan.jp/dosvcmd/ansi.htm

YanaKen
 
 


カテゴリー「アプリケーションとコマンド・プロンプト」索引へ

 

カテゴリー一覧

FPCU/FPCDIY QUICK LINK online
この上の各ジャンル名をクリックすると、下のウィンドウが切り替わります▼


=リンク集のインデックスはこちら=

資料書籍

About

2004年05月03日 23:53に投稿されたエントリーのページです。

ひとつ前の投稿は「ファイルが存在しないディレクトリの一括削除」です。

次の投稿は「指定されたパスが見つかりません」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

This site is powered by Six Apart
Movable Type 3.33-ja
このブログについて | 運営:有限会社メディアポート