[前の記事]« コマンド・プロンプトの実行結果をログに保存したい
[次の記事]バッチファイル実行結果がリダイレクト出来ない »

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

▲カテゴリー「PAUSE,CHOICE…キー入力待ち/時間待ち」索引へ

[KR.EXE]画面がクリアされるため外部リスト表示が出来ない

27.
KR.exeで外部リスト表示が出来ません
2004年01月05日(月) 18時18分
こしみ
はじめまして。
windows2000ProfessionalSP3を使用しています。
このたびフリーソフトのKR.EXEを利用させていただきバッチを書きました。そのバッチファイルをダブルクリックで実行すると、下記マニュアルにある使用例
====
@ECHO OFF
 TYPE MENU.DOC
 KR 何番のメニューを実行しますか?__[Qで中止]: -KQ123456
 IF ERRORLEVEL 6 GOTO MENU6
 IF ERRORLEVEL 5 GOTO MENU5
 IF ERRORLEVEL 4 GOTO MENU4
 IF ERRORLEVEL 3 GOTO MENU3
 IF ERRORLEVEL 2 GOTO MENU2
 IF ERRORLEVEL 1 GOTO MENU1
 GOTO QUIT
:MENU6
 .....以下略
====
のところで、TYPEで選択リスト一覧を表示した後、
最初にKRが起動するタイミングで
せっかく表示したリスト一覧がクリアされ、
Microsoft(R)KKCFUNKバージョン1.10
copyright・・・
・・・(以下略)
という、"command"でコマンドプロンプトを起動したときに最初に出る文字列が出てきます。
リスト一覧はクリアされているのでその後の番号選択が出来ません。
このリストはメンテナンス性があるものなので、出来ればバッチ内でのECHO表示ではなく別ファイルで持っていたいのですが・・
解決策をご存知の方、ご教示いただけませんでしょうか。
28.
Re:KR.exeで外部リスト表示が出来ません
2004年01月05日(月) 20時20分
YanaKen
こしみさん はじめまして。KR.EXE作者のYanaKenです。

>最初にKRが起動するタイミングで
>せっかく表示したリスト一覧がクリアされ、
>Microsoft(R)KKCFUNKバージョン1.10
>copyright・・・
>・・・(以下略)
>という、"command"でコマンドプロンプトを起動したときに最初に出る文字列が出てきます。
>リスト一覧はクリアされているのでその後の番号選択が出来ません。
>このリストはメンテナンス性があるものなので、出来ればバッチ内でのECHO表示ではなく別ファイルで持っていたいのですが・・
>解決策をご存知の方、ご教示いただけませんでしょうか。

 KR.EXEはMS-DOSプログラム(=COMMAND.COM下でだけ動作するプログラム)ですので、WindowsNT系のコマンド・プロンプト(CMD.EXE)で直接動かすことはできません。ゆえにKR.EXE起動の時点でMS-DOS互換のCOMMAND.COMが自動的に起動してしまうわけです。
 裏返して言うなら「KR.EXE起動前にすでにCOMMAND.COMがロードされ、TYPEコマンド等もその上で実行される」ようにバッチファイルを作ればそういう現象は起きないことになります。
 具体的なやり方はバッチファイルの後半の処理の内容次第のところもあると思いますが、いちばん簡単なのは、そのバッチファイル自体をCMD.EXEではなくCOMMAND.COM下で動作させるようあらかじめ指定しておく(そういうショートカットをあらかじめ作っておく)方法です。

 例: COMMAND /CC:\MENU\SAMPLE.BAT

Manager YanaKen
29.
Re:KR.exeで外部リスト表示が出来ません
2004年01月06日(火) 16時47分
ふぇむ
> KR 何番のメニューを実行しますか?__[Qで中止]: -KQ123456

これだけだったら、

set /P ANS=何番のメニューを実行しますか?__[Qで中止]:

などとやって、

if /I "%ANS%" == "4" goto MENU4
if /I "%ANS%" == "3" goto MENU3

などとやることで代行できるのではないでしょうか。
31.
Re2:KR.exeで外部リスト表示が出来ません
2004年01月07日(水) 15時58分
こしみ
YanaKenさん、お世話になっております。

なるほど、cmdとcommandの違いなんですね。
勉強になりました。
ただ、早速ショートカットからやってみましたが、cmdでは正常に機能するがcommandでは機能しないコマンド列があるようで、KR.EXE以外の部分で障害が発生してしまいました(^^;
(例:copy CON temp.log でコンソール入力をファイルに出力する等)

で、commandでは障害が発生するコマンドをKR実行前に持ってきて、KRを一度ダミーで動かして(適当なキーを押させてごまかす)command開始時の文字列を出してしまいその後再度KRにてやりたいことをやる(リストを表示して選択させる)事で回避できました。
適当なキーを押させるダミーがどうもしっくりきませんが仕方ないのかもしれませんね(^^;
cmdからcommandを立ち上げるだけの(ユーザーの入力の必要のない)、何か他の実行ファイルがあれば良いのでしょうが私にはわからず・・(意味不明なコメントをしている気も)。

とにかくどうもありがとうございました!

>こしみさん はじめまして。KR.EXE作者のYanaKenです。

>>最初にKRが起動するタイミングで
>>せっかく表示したリスト一覧がクリアされ、
>>Microsoft(R)KKCFUNKバージョン1.10
>>copyright・・・
>>・・・(以下略)
>>という、"command"でコマンドプロンプトを起動したときに最初に出る文字列が出てきます。
>>リスト一覧はクリアされているのでその後の番号選択が出来ません。
>>このリストはメンテナンス性があるものなので、出来ればバッチ内でのECHO表示ではなく別ファイルで持っていたいのですが・・
>>解決策をご存知の方、ご教示いただけませんでしょうか。

> KR.EXEはMS-DOSプログラム(=COMMAND.COM下でだけ動作するプログラム)ですので、WindowsNT系のコマンド・プロンプト(CMD.EXE)で直接動かすことはできません。ゆえにKR.EXE起動の時点でMS-DOS互換のCOMMAND.COMが自動的に起動してしまうわけです。
> 裏返して言うなら「KR.EXE起動前にすでにCOMMAND.COMがロードされ、TYPEコマンド等もその上で実行される」ようにバッチファイルを作ればそういう現象は起きないことになります。
> 具体的なやり方はバッチファイルの後半の処理の内容次第のところもあると思いますが、いちばん簡単なのは、そのバッチファイル自体をCMD.EXEではなくCOMMAND.COM下で動作させるようあらかじめ指定しておく(そういうショートカットをあらかじめ作っておく)方法です。

> 例: COMMAND /CC:\MENU\SAMPLE.BAT

Manager YanaKen

 
 


カテゴリー「PAUSE,CHOICE…キー入力待ち/時間待ち」索引へ

 

カテゴリー一覧

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


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

資料書籍

About

2004年01月05日 18:49に投稿されたエントリーのページです。

ひとつ前の投稿は「コマンド・プロンプトの実行結果をログに保存したい」です。

次の投稿は「バッチファイル実行結果がリダイレクト出来ない」です。

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

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