いくつかの処理を行い、いくつかの perl スクリプトを呼び出すバッチ スクリプトがあります。
私の質問は、perl コードを直接バッチ スクリプトに入れ、両方のタイプのスクリプトを実行させる方法があるかどうかです。
いくつかの処理を行い、いくつかの perl スクリプトを呼び出すバッチ スクリプトがあります。
私の質問は、perl コードを直接バッチ スクリプトに入れ、両方のタイプのスクリプトを実行させる方法があるかどうかです。
Active Perlはこれを何年も行ってきました!
下は骨格です。ただし、 perl を呼び出せるのは1 回だけです。このスイッチを渡すと、このファイルに埋め込ま-x
れた perl コードが見つかることが示され、perl は perl シバン ( ) を見つけてそこで実行を開始するまでファイルを読み取ります。Perl は、ラベルに到達するまで何も気にしないようにDOS に指示したため、and の後のすべてを無視します。#!...perl
__END__
goto endofperl
@rem = '--*-Perl-*--
@echo off
perl -x -S %0 %*
goto endofperl
@rem -- BEGIN PERL -- ';
#!d:/Perl/bin/perl.exe -w
#line 10
use strict;
__END__
:endofperl
はい、できます。
実際、これはまさにこのpl2bat
ツールが行うことです: perl プログラムを、perl プログラムを埋め込むバッチ ファイルに変換します。pl2bat.bat 自体を見てください。
したがって、 を取得して.pl
で変換しpl2bat
、必要に応じてバッチ部分を微調整できます。:end_of_perl
上部のコードでは単一引用符を使用しないように制限されているため、バッチ コードの大部分はファイルの末尾 (ラベルの近く) に配置する必要があります。
でも:
そのため、代わりにプロセス全体を 1 つの Perl プログラムで記述することをお勧めします。
更新: 1 つのスクリプトといくつかの Perl モジュールを 1 つのバッチ ファイルに結合する場合は、 を使用して Perl ファイルを結合し、結果fatpack
に適用できます。pl2bat
これを行う方法はありますが、きれいにはなりません。perl コードを一時.pl
ファイルにエコーし、.bat
.