Lua:Windows 8.1上的命令行参数为nil

Hra*_*cky 3 parameters lua command-line command

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

scipt.lua arg
Run Code Online (Sandbox Code Playgroud)

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

print(arg[1])
Run Code Online (Sandbox Code Playgroud)

结果为零.

当我尝试运行它时:

lua script.lua arg
Run Code Online (Sandbox Code Playgroud)

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

Pau*_*nko 5

我没有看到你的例子有任何问题.由于您可以运行此命令,但是没有传递任何参数,因此无论注册关联的脚本是什么,都不会使用语法来传递参数.您可以找到已注册的关联并检查命令以确保它包含%*将所有参数传递给脚本.

您可以使用where lua.exe命令找到可执行文件的位置,然后直接从命令行调用该可执行文件以查看它是否有效.

  • 要添加到Paul的答案,感兴趣的注册表项是:`HKLM\SOFTWARE\Classes\Lua\Shell\Open\Command`和`HKCLASSES_ROOT\.lua`.对于前者,确保有`(默认)REG_SZ C:\ lua-5.1.5\lua.exe"%1"%*`和后者`(默认)REG_SZ Lua`.如果它们丢失了,只需添加它们,当然也可以根据配置调整路径. (2认同)