• 締切済み

Perlからcmdへの操作

先にWinAPI GetDiskFreeSpaceEx について を質問したものです。 いろいろ調べていくうちにWinAPI GetDiskFreeSpaceExが原因ではなくその前にそのウェブが動いているカレントドライブを下記の記述で取得しているのですが、それがうまくいっていないことがわかってきました。 そのcgi内の記述は $drv = `cmd /c cd`; です。文法的にも問題なく、また、Win2000にIISをいれて動かした場合、この記述でちゃんとカレントドライブが取得できるのに、Win2003Serverでは取得できません。サーバーのバージョンの問題というよりも環境の問題なのではないかと思ってきたのですが、あいにくほかのWin2003Serverでテストに使えるものもなく、困っています。 上記記述をCGI出なくライブラリにしてコマンドライン実行した場合、2003サーバーでもちゃんと取得できます。よってPerlからcmdへのパスが通っていない、であるとか(そんなの必要ないと思ってたのですが・・・)そういった環境に問題があると感じています。 何か思い当たる点がありましたら教えてください。

  • Perl
  • 回答数3
  • ありがとう数0

みんなの回答

  • Hasty
  • ベストアンサー率73% (19/26)
回答No.3

カレントドライブ及びカレントディレクトリが必要なら、 use File::Spec; $abs_path = File::Spec->rel2abs("./"); ($volume, $directory) = File::Spec->splitpath($abs_path, 1); でできますよ。

  • ballville
  • ベストアンサー率47% (233/487)
回答No.2

>Perlからcmdへのパスが通っていない、であるとか そう思い当たるなら、cmdをフルパスで書いてみてはどうでしょう?

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

Win32API GetCurrentDirectory を使ってはどうでしょうか

関連するQ&A

  • Windowsに最適なPerl

    Windows 2000 Server + IIS の環境があるのですが、 諸事情により、Perlをインストールすることになりました。 そこで、調査したところ、Active PerlやPerl for winなど 何種類かあるみたいなのですが、Windows 2000 Serverで 使用するのに最適なものってどれでしょうか? ご教授の程、よろしくお願いします。

    • ベストアンサー
    • Perl
  • perl って何?

    CGI とかを使用したいと思いまして。 いろいろ、集めたのですが、 perl を使ってるのがあります 調べようと思ったのですが、よく解りません。 使い方(設定の仕方)等を教えてもらえれば・・ NTサーバーでIISを導入しLANで使用する予定です。

  • Win2000, IIS 上でPerl を動作させる場合の留意点について

    初めて質問させていただきます。 ホストをWin2000でIISを使ってデータベースサーバを構築しようとしています。CGI言語としてPerlを使うのですが、うまくPerlが動作していない様子になってしまっています。 上記のような組み合わせでデータベースを構築する際に、PerlのためのWin2000側、IIS側の設定事項などはありますでしょうか。ご存知の方、いらっしゃいましたらご回答のほどよろしくお願いいたします。 以上、よろしくお願いいたします。

  • Apacheをlocalhostで動かしているのですが、Perlの引数

    Apacheをlocalhostで動かしているのですが、Perlの引数のないものやCGIはうまく動くのですが (設定はインターネットのサイトで調べました。)、exec cmd で Perlを呼び出すタグの入った Htmlを動かそうとしたら、Internal Server Errorになってしまいました。exec cmdの入って いないHtmlでもInternal Server Errorになってしまいました。ApacheではHtmlは動かせないの でしょうか、それとも設定がどこか問題があるのでしょうか。どなたかご存知の方よろしかったら 教えてください。ここのカテゴリーでよいのか悩みましたが、とりあえずよろしくお願いします。

  • Apacheをlocalhostで動かしているのですが、Perlの引数

    Apacheをlocalhostで動かしているのですが、Perlの引数のないものやCGIはうまく動くのですが (設定はインターネットのサイトで調べました。)、exec cmd で Perlを呼び出すタグの入った Htmlを動かそうとしたら、Internal Server Errorになってしまいました。exec cmdの入って いないHtmlでもInternal Server Errorになってしまいました。ApacheではHtmlは動かせないの でしょうか、それとも設定がどこか問題があるのでしょうか。どなたかご存知の方よろしかったら 教えてください。よろしくお願いします。質問がここのカテゴリーでよかったのかわかりませんでした が、サーバーと書いてあったのでここに投稿しました。間違ってたらすいません。

  • PerlでIPアドレスを取得する方法

    Perl5.6 or 5.8を使っております。 環境変数からIPの取得をするのは、CGIで動いている前提?ですが、 CGIでなくてperlスクリプトが単体で動作した場合に他の例えばサーバーのアドレスを知るにはどのようにしたらよいのでしょうか? 自アドレスはgethostbyaddrで取得できます。 REMOTE_ADDRの値を取得したいです。

    • ベストアンサー
    • Perl
  • Perl、IISのバージョンについて

    社内Webサーバを移行しようとしています。 現在稼動中のサーバのPerlのバージョンが Perl5.005_2(IIS3)ですが、新サーバの方は バージョンのあたらしいものと(IIS4)にしても 問題はないのでしょうか? なかなか、Perlが動いてくれず、 NT、Perlを何回も再インストールしています。 しろうとですので、何かよきアドバイスを お願いします。

  • PERL 宣言文 -wについて

    Perl初心者のWEBサーバエンジニアです。 サーバの移行に伴ってCGIファイルが動作していないため、ご相談になります。 【サーバ環境】 perl実行パス      /usr/local/bin/perl シンボリックリンク   /usr/bin/perl => /usr/local/bin/perl ソース記述       #!/usr/bin/perl ヴァージョン      5.8.5 perl実行環境      http://△△△.jp/cgi-bin/ ※apacheのスクリプトエイリアス指定 options +ExecCGI -Include SetHandler cgi-script 上記の環境で、cgiファイルが500internalサーバエラーになる現象が発生しています。 ファイルは以前動作したサーバから引っ張ってきました。 原因を探っていたのですが、cgiファイルのソース記述を #!/usr/bin/perl -w と記述を変更すると正常に動作しました。 -w について 【1度しか出現しない識別子や、初期化されずに参照される変数など、危険、無駄と思われる処理の警告を出力します。実際にはもっとたくさんの種類のチェックをするようです。】 と言う事はわかりましたが、いままで、-wなしで動作していたので、-wなしで動くよう、perlの設定を変更したいとかんがえております。 なにぶんPERL初心者ですので、同様の事象で知見がある方、ご教授を宜しくお願いいたします。

    • ベストアンサー
    • CGI
  • IISでCGIとしてのPerlが動かない

    Win2K ProにてIISでローカルサーバーでサーバーサイドスクリプトの勉強中です。 ASPは標準でついているので、PerlとPHPを組み込みました。 PHPは内部プロセス型ではなく、CGIバージョンですが、正常動作しました。 もちろんASPも。 それで問題なのですが、Perlがどうしても動きません。 PHPと同じように実行ファイルのパスや拡張子の設定はできているはずです。 しかし、いつまでたっても出力が出ず、2分くらいたってCGIタイムアウトとなってしまいます。 PerlにはActive PerlとCygwin付属のPerl両方試しましたが、タイムアウトです。 ファイルをコンソール上で実行してみましたが、Active PerlもCygwinのPerlも、期待通りの出力がなされています。 ちなみに、shファイルをCygwinのbashに関連付けて、実行させましたが、コンソール上での出力とはうらはらに、ブラウザ上ではやはりタイムアウトとなりました。 PerlのソースはいずれもほかのところのApacheでは動いているものです。 httpヘッダも正常です。 ソースの文字コードは英語のみ、EUC、改行コードcr+lf、lfのみなど、いろいろ試しましたがダメでした。 なにが原因なのでしょう。 IISを使っている方、アドバイスお願いします。

  • Perl はOSによって動作が違ったりするのか?

    お世話になります。 PerlでCGIを作成しようと思うのですが、Webサーバ側の環境がWindows2000、Linux、UNIXなど、OSによって動作が違ったりするのでしょうか? と、いいますのも、WebサーバはUNIXでSun ONE WebServerなのですが、 PerlのプログラミングはWindowsで、テストは、Windows 2000+ApacheまたはIISなどでしようと考えています。 Windowsの環境で作成、テストしたPerlプログラムを、 UNIXのSun ONE WebServerにアップした際、 不具合なく動作するかどうかが心配なのです。 以上、ご教授よろしくお願いします。

    • ベストアンサー
    • Perl

専門家に質問してみよう