Lua:在Windows 8.1上命令行参数为空。

3

我使用命令行运行Lua脚本:

scipt.lua arg

但是当我想要在脚本中打印arg1的值时:

print(arg[1])

结果为 nil。

当我尝试这样运行它时:

lua script.lua arg

在Windows中,它返回未识别的命令。我做错了什么?如何从命令行获取参数?


这是哪个版本的Lua? - Etan Reisner
我猜是Lua 5.3.0。 - Hrablicky
如果您在脚本中使用 print(arg[0]),您是否会得到预期的结果? - Etan Reisner
1个回答

5
我认为您的示例没有问题。由于您能够运行此命令,但未传递任何参数,可能是注册关联的脚本没有使用传递参数的语法。您可以查找已注册的关联并检查该命令,以确保它包括%*以将所有参数传递给脚本。
您可以使用where lua.exe命令找到可执行文件的位置,然后直接从命令行调用该可执行文件以查看是否有效。

2
补充Paul的回答,感兴趣的注册表项是:HKLM\SOFTWARE\Classes\Lua\Shell\Open\CommandHKCLASSES_ROOT\.lua。对于前者,请确保有(Default) REG_SZ C:\lua-5.1.5\lua.exe "%1" %*,对于后者,请确保有(Default) REG_SZ Lua。如果它们不存在,只需添加它们,并根据您的配置适当调整路径。 - greatwolf

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接