障害情報
リダイレクト処理における障害
Windows2000以降のDOS(コマンドプロンプト)では、リダイレクト処理が無視されるような動作が希に発生します。
Windows95/98でリダイレクト処理の問題は報告されていません。
現象
例>rpn >tmp
1
^Z
ほとんどは、このように正常に動作しますが、希に以下のように処理がスキップされることがあります(以下の3例はいずれも似たような症状です)。
> <-- すぐに次のプロンプトが出ている
以下の2例も似たような症状です。
または
> >
原因
DOSの不具合によるrpnの障害です。
対策
上記のような状態が発生しましたら、一旦DOS(コマンドプロンプト)を閉じてから再度、DOSを起動してください。
回復手順を参考にすると、比較的すぐに作業の再開ができます。
この現象はrpn固有の問題ではなく、DOSで動作する他のプログラムにも発生します。
パイプ処理における障害
Windows2000以降のDOS(コマンドプロンプト)ではパイプ処理を連続して実行すると動作停止することがあります。
Windows95/98でパイプ処理の問題は報告されていません。
現象
例(パイプの数が2つ)>rpn 100 | rpn . .05 * | rpn +
105
ほとんどは、このようにうまく処理してくれますが、希に以下のように動作停止することがあります。
<-- 動作が止まって何も表示されない
(タイトルバーの×ボタンで閉じる)
回復手順を参考にすると、比較的すぐに作業の再開ができます。
原因
DOSの不具合によるrpnの障害です。
対策
上記のような状態が毎回同じrpn式で発生する場合には、パイプを繋げる数を減らして対処します。以下のようにrpn式を分割して実行してください。
| リダイレクトで分割
v
>rpn 100 | rpn . .05 * >tmp
>rpn + <tmp
このように、一時的にtmpファイル(ファイル名は何でも構いません)を経由すればパイプの数が1つだけなので、問題は起こりません。
パイプを2つ、3つと繋げれば繋げるほど処理が停止する確率が増えるようです。パイプの数が1つで発生したことはありませんが、2つで希に発生するようです。ただし、パイプが多いと確実に停止するわけではありません。
ちなみにcmd.exeに限らず、command.comでも同じ現象が発生していることを確認しています。
回復手順(DOSの不具合でrpnに障害が発生した場合)
- 障害の発生したDOS窓をそのままにして、新しくDOS窓をクイック起動で開きます。
- 障害の発生したDOS窓の最後のrpn式を画面情報の確保でクリップボードに保存します。
- 障害の発生したDOS窓を閉じます。
- 新しいDOS窓に画面情報の確保でクリップボードを貼り付けて、再開します。
障害を繰り返すようなら、再度(1,2度)回復手順をやり直すか、上記のリダイレクト障害対策やパイプ障害対策を実施してください。