- ベストアンサー
Windows 7でのカレントディレクトリについて
エクスプローラからPerlを起動する際のカレントディレクトリが、Windows 7 (x64) と Windows XPで違ってしまいます。 Windows XPの場合は起動した.plファイルの場所がカレントディレクトリとなり、特に問題はないのですが、Windows7の場合 C:\Windows\System32 がカレントディレクトリになってしまうようです。 以下の前提条件で、Windows 7 でも XPと同様の動作を実現する方法はないでしょうか。 [起動方法] .plファイルを右クリック ⇒「プログラムから開く」⇒ Perl Command Line Interpriter (既定のプログラムはメモ帳に設定) [環境] Windows (7 x64 or XP) + ActivePerl 5.14.2
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (2)
- lupin-333333
- ベストアンサー率31% (294/933)
回答No.3
- lupin-333333
- ベストアンサー率31% (294/933)
回答No.1
お礼
ご指定のコードで、期待通りの動作を得ることができました。 ありがとうございます。
補足
【追記】 質問内容の修正はできないようなのでこちらに失礼します。 ActiveStateのフォーラムに以下のような記事を見つけました。 http://community.activestate.com/forum-topic/cannot-pass-command-line- Windows Vistaにおいて「プログラムから開く」からPerl Command Line Interpreterを選択した場合、起動パラメータがうまく引き渡されない現象があるようです。 また、Process Explorerで起動方法によるプロセスの状況を調べたところ、Windows7においては以下のような構成となっていました。 [プログラムから開く⇒Perl Command Line Interpreter] svchost.exeの子プロセスとして起動(Current Directory は C:\Windows\System32\) [ファイルを開くプログラムの選択⇒Perl Command Line Interpreter(またはダブルクリック)] 親プロセスなしで起動(Current Directory なし) これが直接的な原因かどうかはわかりません。 (サンプルプログラムを作成して確認したところ、どちらのケースでも起動パラメータは正常に取得できましたので、ActivePerl特有の動作かもしれません)