コマンドライン引数として単一ファイルを受け入れるStrawberry Perlプログラムがあります。目的のファイルを Strawberry Perl プログラム (またはその周りのラッパー) にドラッグ アンド ドロップし、プログラムがそのファイルの名前を引数として実行するように設定するにはどうすればよいですか?
3 に答える
Windows (XP でテスト済み) では、.cmd ファイルを作成し、%1 の引数を指定して Perl プログラムを実行し、コマンドラインで実行されたかのようにファイル名を渡すことができます。
perl c:\test.pl %1
次に、ファイルを .cmd ファイルにドラッグ アンド ドロップするだけで実行できます。
「ラッパー」に代わる別の方法を次に示しますが、perl スクリプトを少し変更する必要があります。
- script.pl スクリプトの名前を script.cmd に変更します。
- ファイルの先頭に次を追加します。
@SETLOCAL ENABLEEXTENSIONS
@c:\path\to\perl.exe -x "%~f0" %*
@exit /b %ERRORLEVEL%
#!perl
#line 6
# ...perl script continues here...
スクリプトは、他のバッチ ファイルと同じように実行されます。最初の 3 行は、基本的に CMD ファイル自体で Perl を呼び出します (%~f0
は、CMD 拡張機能がオンになっている場合にのみ機能します)。-x
perl.exeのパラメーターは、Perl にその#!perl
行まですべてをスキップするように指示します。" #line 6
" はデバッグに役立ちます。
これは、ターゲット システムについてよく知らない (レジストリを編集できない可能性がある) 場合に推奨するソリューションです。