|
523) W2KのESCシーケンスについて じゅーき 2002/07/29(月) 17:00 |
|
初めまして、じゅーきと申します。 早速ですが、Win2000にてテキストファイルに書き込んだESC シーケンスをDOS窓からtypeコマンドで表示しようとしても うまく表示されません。(タダの文字として表示されてしまい ます。ESCは改行のような文字となって表示されます) なお、ansi.sysはadddrvコマンドで組み込んでおります。 しかし、この状態でDOSスタイルのプログラムから表示させれば 正しく表示されます。例えば INT21 AH=09H で先のテキスト ファイルの文字列を表示させれば問題ないのです。 なお、Win9x系ではどちらの場合も正しく表示されます。 Win2000のDOS窓上からテキストに書いたESCシーケンスをバッチ で表示したいのですが、何か良い方法はないものでしょうか? ご存じの方おりましたら、ご教授願います。 |
|
524) Re:W2KのESCシーケンスについて SYSOP 2002/07/30(火) 09:26 |
|
じゅーきさん こんにちは。 >早速ですが、Win2000にてテキストファイルに書き込んだESC >シーケンスをDOS窓からtypeコマンドで表示しようとしても >うまく表示されません。(タダの文字として表示されてしまい >ます。ESCは改行のような文字となって表示されます) 単にTYPEコマンドでエスケープ・シーケンス入りのテキストを表示した場合、この動作はWindows2000ネイティブのコマンド・プロンプト(cmd.exe上)で行われしまいます。 ご質問のようにエスケープ・シーケンスを使いたい場合は、CMD.EXEではなくCOMMAND.COM(DOS互換のシェル)を明示的にロードし、そ の上でTYPEコマンドを実行する(COMMAND.COM側の内部コマンドとしてのTYPEを使用する)必要があると思われます。 具体的な方法はいくつか考えられますが、たとえばバッチファイル内に COMMAND /CTYPE ESC.TXT ……のように記述するか、あるいは、 COMMAND /CBATCH.BAT ……のように、バッチファイル自体をDOS互換環境上で動作させるようにすれば解決するのではないかと思います。 >なお、ansi.sysはadddrvコマンドで組み込んでおります。 SYSTEM32ディレクトリ内のCONFIG.NTというファイルが、Windows98等でのCONFIG.SYSにあたるファイルです。このファイル内に、 devicehigh=%SystemRoot%\system32\ansi.sys ……のように記述しておけば、COMMAND.COMが実行された時点では毎回自動的にANSI.SYSがロードされている状態にできます。 YanaKen |
|
526) Re2:W2KのESCシーケンスについて じゅーき 2002/07/31(水) 11:02 |
|
お世話になります。じゅーきです。 > 単にTYPEコマンドでエスケープ・シーケンス入りの >テキストを表示した場合、この動作はWindows2000ネ >イティブのコマンド・プロンプト(cmd.exe上)で行わ >れしまいます。 cmd.exeでtypeしてもESCシーケンスの処理はかぶって くれない訳ですね。 > ご質問のようにエスケープ・シーケンスを使いたい場合は、 >CMD.EXEではなくCOMMAND.COM(DOS互換のシェル)を明示的に >ロードし、その上でTYPEコマンドを実行する(COMMAND.COM側 >の内部コマンドとしてのTYPEを使用する)必要があると思われ >ます。 ということで探してみると...あるのですね。Win2000に command.comが。これはびっくりです。 #こういう互換性保持のために残してあるのかなぁ? > 具体的な方法はいくつか考えられますが、たとえばバッチ >ファイル内に > > COMMAND /CTYPE ESC.TXT > > ……のように記述 して解決しました。 どうも、ありがとうございました。 |
|
528) Re3:W2KのESCシーケンスについて SYSOP 2002/07/31(水) 11:22 |
|
じゅーきさん どうもです。 >ということで探してみると...あるのですね。Win2000に >command.comが。これはびっくりです。 はい、command.comはちゃんとあります(^^;。コマンド・プロンプトの画面が25行の状態になっているときは、COMMAND.COMが活動しています。 >#こういう互換性保持のために残してあるのかなぁ? だと思います。DOS版のTSRやデバイスドライバの類を使おうとした場合はすべてCOMMAND.COM側で処理される構造だと考えられます。 YanaKen |