Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
转换Perl+;shell脚本到EXE_Perl_Shell_Perl2exe - Fatal编程技术网

转换Perl+;shell脚本到EXE

转换Perl+;shell脚本到EXE,perl,shell,perl2exe,Perl,Shell,Perl2exe,我有一个调用shell命令的perl脚本,它在cygwin中运行 前 cat a.txt | egrep$a 目前我需要将其转换为EXE并运行Win7。我使用perl2exe将其转换为在安装的cygwin上运行良好。如果没有安装cygwin,这将无法工作 有没有办法将脚本转换为exe并在没有cygwin帮助的情况下运行 提前感谢看一看 它将Perl解释器和所有必需的模块打包到一个可执行包中。您的问题是perl2exe和PAR::Packer都将打包Perl内容,但不会(默认情况下)将bash s

我有一个调用shell命令的perl脚本,它在cygwin中运行

cat a.txt | egrep$a

目前我需要将其转换为EXE并运行Win7。我使用perl2exe将其转换为在安装的cygwin上运行良好。如果没有安装cygwin,这将无法工作

有没有办法将脚本转换为exe并在没有cygwin帮助的情况下运行

提前感谢

看一看


它将Perl解释器和所有必需的模块打包到一个可执行包中。

您的问题是perl2exe和PAR::Packer都将打包Perl内容,但不会(默认情况下)将bash shell和faux linux环境打包到一个小的.exe文件中。您可以强制它吞下cygwin.dll+bash.exe+cat.exe+egrep.exe,并将它们组合成一个可运行的整体。祝你好运

作为替代方案,您是否考虑过自己读取文件(替换cat的功能)并将其内容发送到

  • 一个特定于windows的(非cygwin)egrep端口(仅增加1个.exe,而不是3个)
  • 在perl中实现所需的egrep功能子集

  • 当我尝试PAR:PACKER PAR::静态-> GETYRAW()时,我没有面临以下错误:PAR加载器在/UR/LIB/PURL5/SITEYPURL/5.14/PAR/LoopPyPARL/BASE.PM线141,第1行没有返回原始二进制数据。无法将临时parl(类PAR::StrippedPARL::Static)写入文件“/tmp/parlC6wJ.exe”,位于/usr/lib/perl5/site_perl/5.14/PAR/StrippedPARL/Base.pm第65行,第1行/usr/local/bin/pp:未能将parl从'PAR::StrippedPARL::Static'提取到文件'parl1vISXfW.exe',位于/usr/lib/perl5/site_perl/5.14/PAR/Packer.pm第1171行,第1.Hm行。。。我从未尝试过CygwinPerl。你一定要去cygwin吗?如果没有,请尝试使用perl。它在windows机器上运行得非常好,PAR::Packer在我的win7x64上安装strawberryperl 5.14时没有任何问题。您使用的是Perl的Cygwin端口还是本机Perl?