434) ECHO で呼び出す文字色を変える taptap 2004/05/03(月) 01:07 |
|
|
|
環境は win98です。 エスケープシーケンスを使用して echoで、文字色を変えるサンプルをみつけたのですが、 特殊文字を使っており、はりつける事はできても 自分のバッチファイルで使おうとしても うまくいきません。 echo [33m33 黄色の文字 の、[の前の部分なんですが。 PROMPT コマンドでなら、『$E[』 で、色は変わるのですが.. アスキーコードなどで 特別な入力方法があるのでしょうか? |
|
436) Re:ECHO で呼び出す文字色を変える oo 2004/05/05(水) 00:08 |
|
|
|
>環境は win98です。 >エスケープシーケンスを使用して >echoで、文字色を変えるサンプルをみつけたのですが、 >特殊文字を使っており、はりつける事はできても >自分のバッチファイルで使おうとしても >うまくいきません。 > >echo [33m33 黄色の文字 >の、[の前の部分なんですが。 > >PROMPT コマンドでなら、『$E[』 >で、色は変わるのですが.. >アスキーコードなどで >特別な入力方法があるのでしょうか? ESC またの名 ctrl [ のコードです。エディタによってはコントロール文字を入力する機能を持っている場合もあるし無い場合もあります。メモ帳のようにそういう機能が無くても、 上の矢印で表示されている文字をコピーして張り付けることは出来ると思いますが(メモ帳画面上では黒四角に見える)、Win98は使ったこと無いのでもし かしたら貼り付けも出来ないのかも。その場合、 echo exit | command /k prompt echo $E[33m > abc.bat を実行すれば、abc.bat に echo [33m exit という行が入るので、それを元に何とかするか。 ちなみに、EmEditorフリー版では、ctrl [ で入力できました([のリバースに見える)。 |
|
438) Re:ECHO で呼び出す文字色を変える YanaKen 2004/05/05(水) 12:17 |
|
|
|
taptabさん こんにちは。ooさんのコメントと重なりますけど…… >echo [33m33 黄色の文字 >の、[の前の部分なんですが。 この発言内には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 |