こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

ActivePerlで#!/usr/bin/が無効

WindowsXPにActivePerl(5.16.3.1603)をインストールして、
コマンドラインに「perl script.scr」と入力して
スクリプトファイルは実行できるのですが、
スクリプトファイルの1行目に「#!/usr/bin/perl」を記述して、
コマンドラインに「script.scr」と入力して実行しようとすると、
「C:\・・・\script.scrは有効なWin32アプリケーションではありません。」
というメッセージが表示されて正しく実行できません。

perl.exeのあるフォルダをC:\usr\binフォルダにして、
1行目を
#!/usr/bin/perl
#!C:/usr/bin/perl
#!C:\usr\bin\perl
などいろいろ試してみましたが、どれも
前述のメッセージが表示されて実行できませんでした。
コマンドラインに「script.scr」と入力するだけで
実行することができるようにするには
どのようにすればいいのでしょうか。

script.scrの拡張子scrをplなどに変更して
この拡張子のファイルに対してperl.exeに関連付けることにより
script.plだけでも実行できるようにはなりますが
拡張子.scrではこの関連付けができませんので
#!/usr/bin/perl等を使用する方法で解決したいです。

ジャンクションとかApacheなどが全く分かりませんので
これらを使わずに簡単にできる方法がありましたら教えてください。
(なお使っても分かりやすい手順があれば可です)
よろしくお願いします。

投稿日時 - 2014-03-01 20:35:20

QNo.8495748

困ってます

質問者が選んだベストアンサー

ファイルの先頭を見て、#!だったらその行を実行コマンドとして実行、というのは、Unix系OSの機能です。
Windowsでは使えません。
http://ja.wikipedia.org/wiki/%E3%82%B7%E3%83%90%E3%83%B3_%28Unix%29

scr は、たしか、Windowsのスクリーンセーバー用に使われていたと思います。
どうしてもscrのままで、となると難しいと思います。

BATファイルに埋め込んで、shebang風に使う、という方法はあるのですが。
Windows shebangで検索するといくつか見付かります。

投稿日時 - 2014-03-01 23:05:58

お礼

Windowsでは使えないということが分かりましたので、perl.exeに関連付けられた拡張子.plを使って実行するようにします。ありがとうございました。

投稿日時 - 2014-03-02 16:00:53

ANo.1

このQ&Aは役に立ちましたか?

12人が「このQ&Aが役に立った」と投票しています

回答(1)