- 締切済み
Perlからcmdへの操作
先にWinAPI GetDiskFreeSpaceEx について を質問したものです。 いろいろ調べていくうちにWinAPI GetDiskFreeSpaceExが原因ではなくその前にそのウェブが動いているカレントドライブを下記の記述で取得しているのですが、それがうまくいっていないことがわかってきました。 そのcgi内の記述は $drv = `cmd /c cd`; です。文法的にも問題なく、また、Win2000にIISをいれて動かした場合、この記述でちゃんとカレントドライブが取得できるのに、Win2003Serverでは取得できません。サーバーのバージョンの問題というよりも環境の問題なのではないかと思ってきたのですが、あいにくほかのWin2003Serverでテストに使えるものもなく、困っています。 上記記述をCGI出なくライブラリにしてコマンドライン実行した場合、2003サーバーでもちゃんと取得できます。よってPerlからcmdへのパスが通っていない、であるとか(そんなの必要ないと思ってたのですが・・・)そういった環境に問題があると感じています。 何か思い当たる点がありましたら教えてください。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- Hasty
- ベストアンサー率73% (19/26)
回答No.3
カレントドライブ及びカレントディレクトリが必要なら、 use File::Spec; $abs_path = File::Spec->rel2abs("./"); ($volume, $directory) = File::Spec->splitpath($abs_path, 1); でできますよ。