perl将所有命令行参数压缩到$ ARGV [0]

时间:2014-01-13 22:55:18

标签: windows perl command-line

在Win 7中,这是程序:

# TestArg.pl
print "\nin TestArg.pl, \$ARGV[0]=$ARGV[0], \$ARGV[1]=$ARGV[1], \$ARGV[2]=$ARGV[2]"; 

当我在命令行运行TestArg.pl 1 2 3

我得到:在TestArg.pl中,$ARGV[0]= 1 2 3, $ARGV[1]=, $ARGV[2]=

而不是分发它们。

在注册表中:

HKEY_USERS\...\Software\Classes\pl_auto_file\shell\open\command is:
Default  REG_SZ "C:\Perl\bin\perl.exe" "%1" "%*"

我尝试将REG_SZ更改为REG_MULTI_SZ,但它不会让我,尽管我是管理员。

如果我可以编辑它,那会解决问题吗?

如果是这样,我如何获得访问权限?

如果它没有帮助,那会是什么?

2 个答案:

答案 0 :(得分:1)

假设是%*,而不是"%*"

答案 1 :(得分:0)

我在上面的评论中留下的答案离显示的线程太远,所以我会在这里重复一遍,可以看到。

正如Kenosis所说,这个问题在4年前问题1695188得到解答。

在Applications \ perl.exe \ shell \ open \ command注册表字段的末尾需要%*。

我有%*,但仅限于pl_auto_file \ shell \ open \ command字段。

有趣的是,无论是谁设置该领域至少4年都做错了!