|
>>2445 68user さん: >> しかもブラウザーが渡す URL の文字列は必ず sjis。 > http: //host/dir/hoge.cgi?ほげ > とかですか? http://host/dir/hoge.cgi?hoge=ほげ とかです。 CGI には sjis で渡るのに、表示は正常に行なわれます。 |
|
どうも、ご無沙汰しております。yujiです。^^ お世話になっております。 現在、windows2000+apache+activeperlの環境において、 CGI(perl)からapacheの再起動等を行いたいのですが、 apacheのパスにスペースが入っているためか、 コマンドを実行できず、困っております。^^; 具体的には、 パスが、 d:\Program Files\Apache Group\Apache\Apache.exe のような形です。 実行部分は、 $cmd="d:\\Program Files\\Apache Group\\Apache\\Apache.exe -w -n \"Apache\" -k restart"; system($cmd); のような形です。 パスのスペース部分をアンダースコアに変更して試してみたりも したのですが、うまくいかないようでして。^^; それぞれのフォルダ名にスペースを含めないようにすれば、 解決できるのかもしれませんが、スペースがあった場合に 対応できないものか、と思いまして。 みなさんなら、どうされますか? もしよかったら、アドバイスを、 どうぞよろしくお願いいたします。 |
|
>>2447 yuji Windows で perl スクリプトを作ったことがないのでアレですが、 $cmd="\"d:\\Program Files\\Apache Group\\Apache\\Apache.exe\" -w -n \"Apache\" -k restart"; はどうですか? >>2448 68user > http://host/dir/hoge.cgi?hoge=ほげ まぁ、規格で定まっていない部分ですから仕方ないですね。 IE だと (設定次第ですが) UTF-8 で送ることもありますし。 |
|
>>2448 68user 初めて ActivePerl といふものでプログラムを組んでみました。 やはり "" で囲めばよろしいようで。 DOS 窓から C:\> d:\\Program Files\\Apache Group\\Apache\\Apache.exe とするとダメだけど、 C:\> "d:\\Program Files\\Apache Group\\Apache\\Apache.exe" なら OK、というのと同じですね。 |
|
>>2448 68user さん: >> http://host/dir/hoge.cgi?hoge=ほげ >まぁ、規格で定まっていない部分ですから仕方ないですね。 >IE だと (設定次第ですが) UTF-8 で送ることもありますし。 えーそうなんだ、、それは困るな。 やっぱり世間の検索エンジンみたいに hoge=%A4%BD%A4%B2 とかすべきですね。 日本語キーにするなって話もありますが。 |
|
68userさん、アドバイスありがとうございます。^^ おかげさまで、無事コマンドを実行することができました。 DOS窓でもスペースがある場合、実行できなかったため、^^; スペースを、区切りではなく文字列の一部と認識させるために、 "で括る方法、とても勉強になりました。^^ |
|
>>2451 yuji Windows 2000 とかだと、エクスプローラーでフォルダをドラッグし、 コマンドプロンプトにドロップすれば、 "c:\WINNT\program files\" などと "" 付きでフルパスが展開されます。エクスプローラーで ファイルのフルパスを簡単に取得する方法はないのかなぁ。 >>2450 ふくし > hoge=%A4%BD%A4%B2 とかすべきですね。 そうですね。ただ、詳しくは知らないんですが、遷移先にどんな文字 コードを使っているかを伝えられるような送信方法もあったはずです。 RFC になってたかなぁ。 今日の大発見: cd - で一つ前にいたディレクトリに戻れる! (sh, csh, tcsh で確認) これは知らんかったなぁ。 |
|
file.1 file.2 ... file.9を一括で file-1 file-2 ... file-9に変換したいのですがどうすればよいでしょう? 稚拙な質問で申し訳ありません 使ってるのは tera term です。 |
|
>>2453 宮村 TeraTermにそんな機能はないだろ。 |
|
No. 2453 # 宮村 ここなど参考にしてみては。 http://www.nurs.or.jp/~asada/FAQ/UNIX/section2.6.html |
|
>>2454 * そういう物言いをしたいなら、2ch へどうぞ。 |
|
できました。教えてくれた方、ならびにカキコ有無にかかわらず少しでも考えてくれた人とてもありがとうございました。これで単位がもらえます。 |
|
はじめまして、とっしーです。 知っている人がいたら、何かいいお知恵をお願いします。 CGI上でソケット通信をして、他のサーバからデータを取り込み ブラウザ上にてデータ表示をしているのですが。 ソケット通信をするサーバが2個あり1番目のサーバタイムアウト後 2番目のサーバに対してソケット通信をしたいのですが、 sub aaa{ $SIG{ALARM} = sub{exit 1;}; alarm($timeover); $socket = IO::Socket::INET->new(); 〜 } 上記のようなタイマでタイムアウトを検出しても、このサブルーチンの 起動元までリターンしません。(T_T) 起動元までリターンするような、プログラム方法等があればお教えください。 |
|
>>2458 とっしー うーん、まずは exit してプロセスが終了してるんだから、 どこにも戻りようがない、というところから始めましょうか。 で、どう書くのが正しいのかなぁ。 |