gpt4 book ai didi

用于安装多个 perl 模块的 Windows 批处理文件 - 仅运行第一行

转载 作者:可可西里 更新时间:2023-11-01 11:33:50 25 4
gpt4 key购买 nike

我在 Windows 上安装 Bugzilla,checksetup.pl 要求我通过运行 ppm(Perl 包管理器)命令来安装一堆模块,如下所示:

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 help 查找了 ppm 的手册页,发现我可以一次传递所有包名称,从而省去了解决这个问题的麻烦,但我真的不知道不明白为什么我的小批处理文件不起作用。

我认为批处理文件只是将一行接一行地馈送到 shell 提示符,等待每个完成其工作,直到它们到达文件末尾。我在这个等式中缺少什么?

最佳答案

在我的 Perl 安装中,命令 ppm 是一个批处理文件:ppm.bat(不是 .exe)

当您从一个批处理文件调用另一个批处理文件时,调用批处理文件将与被调用的批处理文件一起终止。

您需要使用 call 才能从一个批处理文件中运行另一个批处理文件。

call ppm install Chartcall ppm install Template-GDcall ppm install MIME-toolscall ppm install XML-Twigcall ppm install PatchReader

关于用于安装多个 perl 模块的 Windows 批处理文件 - 仅运行第一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16541062/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com