Directory Stack

for DOS and OS/2

Version 2.00

Copyright (c) 1992, 1993, 1997, 1998 by Altair☆


もくじ

Library Indexに戻る

概要


ダウンロード

DOS用

OS/2用


留意点


インストール

DOS用、OS/2用とも、留意点の項を良く読んでから、配布のプログラムを、それぞれの環境のPATHのディレクトリに置いてください。

なお、OS/2用パッケージには、OS/2用とDOS用の両方のプログラムをアーカイブして収録してあります。DOS用パッケージには、DOS用プログラムのみの収録です。


変更履歴

Ver 2.00 (1998年)
UNIX環境で広く使われているtcshのディレクトリ・スタックに動作やオプションを似せる。
Ver 1.xx (1993年〜)
DOS用。Windows 95が従来のDOSと互換性が低い(COMMAND.COMの内部コマンド拡張用の機能が廃止された)ため、Ver 0.xxが使用できなくなった。その対策版。さらに、OS/2用REXXスクリプトを新たにコーディング。
Ver 0.xx (1992年)
DOS用のみの公開。

使用方法

各コマンド共通事項
-V’を指定すると、コマンドを実行せずに、バージョン番号を表示して終了します。

オプションの文字は、大文字小文字を同一視しません。各コマンドとも、-V-vを、異なる意味に解釈します。

dirstack [スタック領域サイズ] (DOS環境のみ)
dirstack [-u] (DOS環境のみ)

OS/2環境では使用しません。

DOS環境にディレクトリ・スタック・メモリを確保するための常駐プログラムです。スタック領域サイズをバイト数で最大2,560バイトまで指定できます。この制約を超えてスタック領域サイズを指定した場合には、2,560バイトと指定されたものと見なします(特にエラー・メッセージは出ません)。また、このスタック領域サイズ指定を省略した場合のディフォルトは768バイトです。既に確保されている領域がある場合にはスタック領域サイズは無視されます。

確保できるメモリの容量が、指定されたスタック領域サイズに満たない場合には、その時点で連続的に確保可能な全てのメモリをディレクトリスタックとして利用します。例えば‘lh dirstack 9999’と指定した時に、UMBが1 KBしか無かった場合には、その1 KBをディレクトリスタックと常駐プログラムコードのために利用します。

-uが指示された場合、既に確保されているスタック領域と常駐プログラム・コードがあればそれをメモリから開放します。

DOS環境においては、原則として、cddpushdを使う前にあらかじめこのdirstackを使用してスタック領域を確保しておかなければなりません。領域の確保はセッション毎(OS/2やWindowsの場合、DOS窓)に最初に1回だけ実行しておけば構いません。

cdd [-p] [-l] [-n|-v] [ディレクトリ名]

ディレクトリ名が与えられた場合、そこに現行ディレクトリを移動します。ドライブ・レターを伴っている場合にそのドライブに移動する点が、DOSやOS/2のCD (CHDIR)コマンドと異なります。

ディレクトリ名が指定されなかった場合には現行ドライブの現行ディレクトリを表示します。ただし、pushdtohomeと環境変数HOMEがセットされていれば、環境変数HOMEの値をディレクトリ名と仮定し、‘cdd %HOME%’と解釈します(OS/2版のみ)。

ディレクトリ名として ‘-’が指定された場合、現行ディレクトリに移って来る前のディレクトリに戻ります(dirstack常駐時のDOS版のみ)。これは、dirstackの旧バージョン0.xxのlastdir機能と同じもので、今回配布のバージョンではcddとpushdに統合しました。OS/2版で‘-’を指定すると、‘-’という名前のディレクトリに移動しようとします。移動できなければエラーになります。

-pフラグを伴うと、ディレクトリ・スタックを表示します。-l-n-vは、dirsのそれらと同じ働きをします。これらは暗黙のうちに-pを仮定します。

dirs [-l] [-n|-v]
dirs -c

ディレクトリ・スタックの内容を表示します。左端に表示されるスタックの先頭は現行ディレクトリです。

-vを伴っていれば、個々の要素をその位置を表す数値とともに1行ずつ表示します。

-l-nは、コマンド・シンタックスの互換性のために用意してあります。また-pも指定できます。しかし、これらは無視され、動作に何ら影響を与えません。

dirs -cは、ディレクトリ・スタックをクリアします。

popd [-p] [-l] [-n|-v] [+n]

アーギュメント無しの場合、ディレクトリ・スタックをpopして、それを新たなトップ・ディレクトリに戻します。数値‘+n’が指定された場合、n番目の要素をスタックから廃棄します。

どちらの場合も、popdは最終的なディレクトリ・スタックの状態をdirs同様に表示します。pushdsilentをセットしておけば、この機能を働かせないようにできます。その場合でも、-pを指定すれば、pushdsilentの設定を無視してスタックの状態を表示させることができます。

pushd [-p] [-l] [-n|-v] [ディレクトリ名|+n]

アーギュメント無しの場合、ディレクトリ・スタックの先頭のふたつの要素をいれかえます。もし、pushdtohomeがセットされている場合、アーギュメントが無い場合、環境変数HOMEの値をディレクトリ名と仮定します。すなわち、‘pushd %HOME%’と同等です。

ディレクトリ名が指定されると、現行ディレクトリをスタックに積みディレクトリ名に移動させます。

ディレクトリ名として ‘-’が指定された場合、現行ディレクトリに移って来る前のディレクトリに戻ります(DOS版のみ)。OS/2版で‘-’を指定すると、‘-’という名前のディレクトリに移動しようとします。移動できなければエラーになります。

数値 +nが指定された場合、n番目の要素がトップ(0番目; 現行ディレクトリ)の要素になるようにディレクトリ・スタックをローテートします。ただし、dextractがセットされていれば、‘pushd +n’は、n番目の要素とトップの要素を入れ替えるだけです(旧版 0.xxや1.xxと同じ動作)。

pushdは、最後にdirs同様のディレクトリ・スタックを表示します。pushdsilentはこれを抑止し、-ppushdsilentの設定を無視します。

-l-n-vは、dirsのそれらと同じ効果を持ちます。

apushd [-p] [-l] [-v] -n [[ドライブ:]検索文字列]
apushd [-p] [-l] [-v] [ドライブ:]検索文字列

PATHの通ったディレクトリにあるacd (Altair☆'s Change Directory)を呼び出しディレクトリの文字列の一部を指定すれば、そのディレクトリに移動します。acdは、version 2.14以降を使用してください。最近の版であれば、バージョンは‘acd -h’で表示されます。最新版はこのドキュメント末尾のweb pageにて公開しています。

pushdは、最後にdirs同様のディレクトリ・スタックを表示します。pushdsilentはこれを抑止し、-ppushdsilentの設定を無視します。

-l-vは、dirsのそれらと同じ効果を持ちます。

-nは、acdのそれと同じ効果を持ちます。このapushdだけ、他のコマンドと-nの役割が違う点に注意してください。詳しくは、acdのドキュメントを参照してください。


カスタマイズ値

各コマンドの動作をカスタマイズできます。カスタマイズするための変数名は、tcshのディレクトリ・スタックをカスタマイズするためのシェル変数の名前に統一してあります。
dextract

セットされていれば ‘pushd +n’はn番目のディレクトリをディレクトリ・スタックをローテートせずに展開(旧版と同じ動作)します。

pushdtohome (OS/2版のみ)

セットされていれば、cddpushdはアーギュメントとして%HOME%を仮定します。ただし環境変数HOMEが設定されていなければ、この設定を無視します。

pushdsilent

セットされていれば、dirs以外の各コマンドの実行後、ディレクトリ・スタックを表示しません。


カスタマイズ方法

OS/2の場合

OS/2用のプログラムはいずれもREXXスクリプトで書いてあります。各プログラムの先頭に、カスタマイズ値を設定する代入文がありますので、その値を0か1に適当なテキスト・エディタを使って書換えることによりカスタマイズできます。

DOSの場合

DOS用環境のカスタマイズには専用のプログラムdirscustを用意しました。
dirscustの起動方法の一般形は以下の次のとおりです。
dirscust [-r]

-rを指定すると、メモリに常駐しているdirstack.comのコードのフラグのみを書換えプログラム・ファイルそのものは書換えません。dextractpushdsilentの効果を一時的に確かめる時に便利でしょう。

-rを指定しなければ、カレント・ディレクトリと環境変数PATHの通ったディレクトリを順にdirstack.comを探し、それに必要なパッチをあてることができます。 [dirscust実行例]

dirscustのキー操作は以下の通りです。

p
pushdsilentの状態を反転します。
d
dextractの状態を反転します。
Enter
プログラムの状態を更新します。
Esc
プログラムの状態を更新せずに、処理を中断します。

dirscustの表示画面は、codepage 437の英語環境用しか用意していませんが、DOS/Vの日本語、中国語、韓国語を含む他の文字コード環境でも利用可能です。その場合、罫線文字が化けてしまいますが、実用上の問題はありません。


Windows環境における制約事項

旧バージョン0.xxでは、領域を確保しておいてからWindowsを起動しても動作するよう設計してありましたが、ver 2.0からは、そのための配慮をやめてしまいました。領域確保は必ずDOS窓毎に行なってください。Windows起動前や起動中に領域確保してはなりません。

旧版との互換性

pushd +n’の動作を、旧版と互換をとりたい時には、dextractをセットしてください。ディフォルトではクリアされています。

Copyright Notice

Copyright (c) 1992, 1993, 1997, 1998 by Altair☆

このソフトウェアは、作者のAltair☆自身が自分で利用するために作成したものです。このソフトウェアの利用により作者以外の者が何らかの損害を被ったとしても、Altair☆は一切の責任を負いません。あらかじめ御了承ください。

このソフトウェアは、GNU productではありませんが、その転載配布条件はGPL version 2に準じるものとします。

The DIRSTACK is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version.

The DIRSTACK is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with the DIRSTACK; see the file COPYING. If not, write to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.

See COPYING for details.

Altair☆ (NBG01720@nifty.ne.jp)
http://www.vector.co.jp/authors/VA000199/