Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.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
Windows 我如何从Cmd运行Perl脚本而不键入";perl";在脚本路径前面?_Windows_Perl_Cmd - Fatal编程技术网

Windows 我如何从Cmd运行Perl脚本而不键入";perl";在脚本路径前面?

Windows 我如何从Cmd运行Perl脚本而不键入";perl";在脚本路径前面?,windows,perl,cmd,Windows,Perl,Cmd,例如perl C:\Projects\trunk\PcApps\BaseCamp\Test\smoketest.pl C:\Projects\trunk\PcApps\BaseCamp\Test\log.txt 不使用perl将.pl扩展名分配给perl解释器。 这取决于你的Windows版本,你是如何做到这一点的 根据您使用的perl安装程序的不同,它还可能为您提供自动执行此操作的选项。有一些程序可以将.pl文件转换为.exe格式: (共享软件) (免费软件) 转换后,您可能仍然需要在系统

例如
perl C:\Projects\trunk\PcApps\BaseCamp\Test\smoketest.pl C:\Projects\trunk\PcApps\BaseCamp\Test\log.txt


不使用
perl

将.pl扩展名分配给perl解释器。 这取决于你的Windows版本,你是如何做到这一点的


根据您使用的perl安装程序的不同,它还可能为您提供自动执行此操作的选项。

有一些程序可以将
.pl
文件转换为
.exe
格式:

  • (共享软件)
  • (免费软件)

转换后,您可能仍然需要在系统上安装perl,但exe文件会自行找到perl解释器。(免责声明:我没有尝试任何一个)

您可以将其放在perl脚本文件的顶部:

@SETLOCAL ENABLEEXTENSIONS
@c:\strawberry-perl-port\perl\bin\perl.exe -x "%~f0" %*
@exit /b %ERRORLEVEL%

#!perl

....perl program goes here...
您还需要更改脚本的扩展名,使其为.cmd而不是.pl。上面的技巧运行草莓perl解释器,使用-x开关和“%~f0”调用它。这是指向.cmd脚本的路径。perl程序完成后,.cmd脚本将退出

下面的位!perl行是实际的perl程序,perl.exe知道在该行运行时要跳到它:

@c:\strawberry-perl-port\perl\bin\perl.exe -x "path\to\my\perl.cmd" %*

您只需要在单独的shell中启动它,如果您在已经安装了Perl的机器上运行它们,那么这可能会有些过分。还有PAR::Packer。这可能是一个巨大的救生圈。谢谢