1

Bugzilla を Windows にインストールしていますが、checksetup.pl から、次のように ppm (Perl Package Manager) コマンドを実行して一連のモジュールをインストールするように求められました。

C:\>ppm install TimeDate

これは正しく実行され、TimeDate モジュールがインストールされます。

これまであまりコマンド ラインの操作を行ったことはありませんでしたが、これを試してみる良い機会になると思いました。そこで、PerlModules.bat というバッチ ファイルを作成しました。

ppm install Chart
ppm install Template-GD
ppm install MIME-tools
ppm install XML-Twig
ppm install PatchReader
ppm install perl-ldap
ppm install Authen-SASL
ppm install RadiusPerl
ppm install SOAP-Lite
ppm install JSON-RPC
ppm install JSON-XS
ppm install Test-Taint
ppm install HTML-Scrubber
ppm install Email-MIME-Attachment-Stripper
ppm install Email-Reply
ppm install TheSchwartz
ppm install Daemon-Generic
ppm install mod_perl
ppm install Apache-SizeLimit
ppm install Math-Random-Secure
ppm install TimeDate
ppm install DateTime
ppm install DateTime-TimeZone
ppm install Template-Toolkit
ppm install Email-Send
ppm install Email-MIME

実行すると、次の出力が生成されます。

E:\Program Files\Bugzilla>PerlModules.bat

E:\Program Files\Bugzilla>ppm install Chart
Downloading Chart-2.4.6...done
Unpacking Chart-2.4.6...done
Generating HTML for Chart-2.4.6...done
Updating files in site area...done
  18 files installed

E:\Program Files\Bugzilla>

そのため、バッチ ファイルの最初の行だけが実際に実行され、残りは何も実行されないように見えます。

最後に、ppm の man ページを調べたところ、ppm help一度にすべてのパッケージ名を渡すことができ、この問題を解決する手間を省けることがわかりましたが、私の小さなバッチ ファイルが機能しなかった理由が本当にわかりません。 .

バッチ ファイルはシェル プロンプトに 1 行ずつフィードし、ファイルの最後に到達するまで、それぞれのジョブが完了するまで待機していると思いました。この方程式に欠けているものは何ですか?

4

1 に答える 1

3

私の Perl インストールでは、コマンドppmはバッチ ファイルです: ppm.bat(not an .exe)

あるバッチ ファイルを別のバッチ ファイルから呼び出すと、呼び出し元のバッチ ファイルは、呼び出されたバッチ ファイルと共に終了します。

call1 つのバッチ ファイル内から別のバッチ ファイルを実行できるようにするには、使用する必要があります。

call ppm install チャート
ppm install Template-GD を呼び出す
ppm インストール MIME ツールを呼び出す
ppm install XML-Twig を呼び出す
ppm install PatchReader を呼び出す
于 2013-05-14T11:03:20.517 に答える