【发布时间】:2014-01-13 22:55:17
【问题描述】:
在 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,但它不让我,虽然我是管理员。
如果我可以编辑它会解决问题吗?
如果是这样,我如何获得访问权限?
如果它没有帮助,那会是什么?
【问题讨论】:
-
“当我在命令行运行时:TestArg.pl 1 2 3”你的意思是
perl TestArg.pl 1 2 3吗? -
不,我依靠文件关联知道以 .pl 结尾的程序使用 perl.exe 运行。但这是个好问题!自从我发布后,我开始玩注册表,搞砸了,显然把所有东西都恢复了原样,但是现在,前面没有 perl.exe 的调用没有传递任何参数,但是使用 perl.exe 的调用可以正常工作!有谁知道应该如何设置所有的注册表项?
-
这是 ActiveState Perl 吗?
-
REG_SZ 是你想要的
-
是的,这是 ActiveState Perl。虽然如果问题出在 Perl 上,我会感到惊讶。 Windows 的注册表似乎有问题。
标签: windows perl command-line