16

いくつかの処理を行い、いくつかの perl スクリプトを呼び出すバッチ スクリプトがあります。

私の質問は、perl コードを直接バッチ スクリプトに入れ、両方のタイプのスクリプトを実行させる方法があるかどうかです。

4

3 に答える 3

25

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
于 2010-06-17T15:21:35.897 に答える
5

はい、できます。

実際、これはまさにこのpl2batツールが行うことです: perl プログラムを、perl プログラムを埋め込むバッチ ファイルに変換します。pl2bat.bat 自体を見てください。

したがって、 を取得して.plで変換しpl2bat、必要に応じてバッチ部分を微調整できます。:end_of_perl上部のコードでは単一引用符を使用しないように制限されているため、バッチ コードの大部分はファイルの末尾 (ラベルの近く) に配置する必要があります。

でも:

  • 複数の perl ファイルを埋め込む必要がある場合、この単純なアプローチは機能しません。
  • これはメンテナンスの悪夢になります。

そのため、代わりにプロセス全体を 1 つの Perl プログラムで記述することをお勧めします。

更新: 1 つのスクリプトといくつかの Perl モジュールを 1 つのバッチ ファイルに結合する場合は、 を使用して Perl ファイルを結合し、結果fatpackに適用できます。pl2bat

于 2010-06-17T15:19:55.910 に答える
1

これを行う方法はありますが、きれいにはなりません。perl コードを一時.plファイルにエコーし、.bat.

于 2010-06-17T15:00:05.160 に答える