2

我知道以前有人问过这个问题,但是我发现的所有解决方案都不适合我。这是我想要做的。

我需要能够通过键入以下命令通过命令提示符运行 perl 脚本:

helloworld param1 param2

如果我现在尝试这样做,我的参数不会在@ARGV 中捕获。但是,如果我输入:

perl helloworld.pl param1 param2

参数在@ARGV 中捕获。

我已经从有关此主题的其他帖子中完成了以下操作:

assoc .pl=Perl
ftype Perl="C:\Perl\Bin\perl.exe" "%1" %*

我还单击了开始->默认程序->将文件类型或协议与程序关联。搜索 .pl 并浏览到 C:\Perl\bin\perl.exe。

我还使用 regedit 将 HKCR\Perl\shell\open\command 中的 open 值更改为:

(Default) REG_SZ "C:\Perl\Bin\perl.exe" %1 %*

在完成所有这些之后,我仍然无法通过键入以下内容来执行脚本:

helloworld param1 param2

对于我可能错过的任何其他意见或建议,我将不胜感激......

4

2 回答 2

3

你说你有

"C:\Perl\Bin\perl.exe" "%1" %*

但是你把它改成了

"C:\Perl\Bin\perl.exe" %1 %*

应该是前者。


使用您描述的设置,您应该使用

helloworld.pl param1 param2
          ^^^

如果要省略.pl,则必须添加.plPATHEXTenv var。

>set PATHEXT=.PL;%PATHEXT%

>type a.pl
print "$ARGV[0], $ARGV[1]!\n";

>a Hello World
Hello, World!

(当然,您可能希望通过更改启动环境而不是仅更改此 shell 来使更改更持久。)

于 2013-03-22T19:42:41.117 回答
0

我下载了以下应用程序:

http://creativelement.com/powertools/

我用它来创建 .pl 与 perl.exe 的关联,然后我可以在没有 perl 或 .pl 的情况下运行 perl 脚本,它也会接受我的参数。与我在这些线程中阅读的所有内容相比,我不确定它做了什么,但我只是想我会与大家分享。

谢谢

于 2013-03-25T15:00:08.840 回答