†REXXのどろぬま†

プログラムのパスの取得

作成開始日 2014.06.21
最終更新日 2014.11.15

プログラムの設定ファイルは;

 @カレントディレクトリに置く、
 Aプログラム本体と同じディレクトリに置く、
 B全く別の場所に置く、

の3つの置き場所が考えられる。このうち、@のカレントディレクトリはDIRECTORY関数によって取得できる。また、Bは個別対処になるのでケースバイケース。問題はAのプログラム本体と同じ場所に置く場合。カレントパスと違って、直接的に取得する関数はREXXにはない。しかし、PARSE命令には、実行中のプログラムのソースの場所を取得するオプションがある。これを使えば、次のような方法でプログラムのパスprogDirが取得できる。

PARSE SOURCE dmy1 dmy2 ProgName
progDir=FILESPEC('D',ProgName)||FILESPEC('P',ProgName)
ちなみに、dmy1には「OS/2」という文字列が、dmy2にはプログラムの呼び出し形式が入る。「COMMAND」はコマンドライン命令、「FUNCTION」は関数(x=FUNC1(a,b,c)形式)、「SUBROUTINE」はサブルーチン(CALL FUNC1 a, b, c形式)を意味する。


【REXXのどろぬま目次】 【ホーム】