[前の記事]« ルートディレクトリへ一気に移動するコマンドは?
[次の記事]LAN内にまとめてpingを打ちたい »

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

▲カテゴリー「CONFIG.SYS」索引へ

W2KのESCシーケンスについて


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
 
 


カテゴリー「CONFIG.SYS」索引へ

 

カテゴリー一覧

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


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

資料書籍

About

2002年07月29日 17:06に投稿されたエントリーのページです。

ひとつ前の投稿は「ルートディレクトリへ一気に移動するコマンドは?」です。

次の投稿は「LAN内にまとめてpingを打ちたい」です。

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

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