UWSCのパラメーターとショートカットについて

公式掲示板にショートカットのあるディレクトリーを取得できますか?という質問があったので、書いてみる。




想定としては、

と考えました。


ネックは、GET_CUR_DIRはスクリプトのあるディレクトリーである、ということか。
ちなみに、Win32APIのGetCurrentDirectoryしても同じ。カレントが変更されてる。


案は、、、そうですね、、、

スクリプト配布スクリプトを作成する

こうすれば、各ディレクトリー内のスクリプトは、GET_CUR_DIRで現在のディレクトリーが取得できる。
デメリットは、実体があるので、ついつい各ディレクトリーのスクリプトを修正したくなること。

ショートカットで起動パラメーターを指定する

例えば「test.uws」を起動したい場合、関連付けを利用して「test.uws」へのショートカットを作成しがちですが、この場合、いろいろ小細工が必要になります。(多分。環境次第だけど)
なので、以下の手順でショートカットを作成します。

  1. ショートカットを作成したいディレクトリー(作業対象のディレクトリーでなくても良い)で、右クリックし「新規作成」から「ショートカット」を選択する
  2. 項目の場所に「(uwsc.exeのフルパス) (test.uwsのフルパス) (作業対象ディレクトリー)」を入れる。
    • 例えば「"C:\Program Files (x86)\uwsc\uwsc.exe" "d:\scripts\test.uws" "d:\data"」
  3. 名前は、test.uwsを作業対象ディレクトリーで動作させることがわかり易いものにする

で、test.uws側では、以下のスクリプトを追加して、作業対象ディレクトリーを取得する。

DIM tarPath = EMPTY
IF LENGTH(PARAM_STR) THEN tarPath = PARAM_STR[0]

ショートカットが期待通り作成されていれば、tarPathに作業対象ディレクトリーが入っています。


この辺でしょうか。