Ric*_*ick 15 perl polyglot batch-file
我有一个批处理脚本执行一些处理并调用一些perl脚本.
我的问题是,是否有办法将perl代码直接放入批处理脚本并让它运行两种类型的脚本.
Axe*_*man 24
Active Perl多年来一直这样做!
下面是一个骨架.你只能打电话给perl 一次.因为传递它,-x交换机会说你会发现嵌入在这个文件中的perl代码,并且perl会读取文件,直到找到perl shebang(#!...perl)并开始在那里执行.Perl会忽略过去的一切__END__,因为你告诉DOS 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
Run Code Online (Sandbox Code Playgroud)
是的你可以。
事实上,这正是该pl2bat工具的作用:它将 perl 程序转换为嵌入 perl 程序的批处理文件。查看 pl2bat.bat 本身。
因此,您可以使用.pl,使用 进行转换pl2bat,然后根据需要调整批处理部分。批处理代码的最大部分必须放在文件末尾(靠近标签:end_of_perl),因为在顶部的代码中,您被限制不能使用单引号。
然而:
因此我建议将整个过程写在一个 Perl 程序中。
更新:如果您想将一个脚本和一些 Perl 模块合并到一个批处理文件中,则可以使用 合并 Perl 文件fatpack,然后应用pl2bat结果。
| 归档时间: |
|
| 查看次数: |
4902 次 |
| 最近记录: |