最近仕事でasp(VBScript)をいじってます。久しぶりのasp…相変わらずやりづらいです。構文に慣れないし実装がしょぼい。
今回は大したプログラムじゃないんだけど、ちょっとトリッキーな事をしてるので色々と苦戦中。でもだいたいの問題は片づいて、残るは一つだけ。
残る問題は「実行しているaspファイル自分自身のファイル名を求める。l
意外とできそうでできない。ちなみに環境変数(Request.ServerVariables)からファイル名を求めることができるんだけど、求めたいファイル名は「Server.Executeコマンドで実行された別のaspファイル内での自分自身のファイル名」なので環境変数からではわからないのです(親のファイル名しかわからない)。
他にはわざとエラー発生させて、エラー情報にファイル名載ってないかなとか調べたんだけど、これも駄目だった。
結局、試行錯誤した挙句、今のところの結論は「ファイル名を求めることは不可能。」です。
本当はファイル名なんていらないのでServer.Executeの時に何らかの方法で変数を引き継げてたら何の問題もなかったんだけどね。
ますますaspがしょぼく見えてきた…。
泣く泣くの別解としてApplicationオブジェクトを使ってデータを渡すしかないかなぁ。本当は今回のシステムの関係上、ちょっといやなんだけど。
というわけで、aspで自分自身のファイル名を求める方法募集中。縛りは以下のとおり。
・環境変数(Request.ServerVariables)からは求めることができない
・標準オブジェクトのみ使用可能(BASPとかああいった類は使用不可)
・IIS5.0でもIIS6.0でも動作する。
…と、募集してみたものの、多分解決策はないと思う今日この頃。
作成日:2008/04/02 02:06:14