在Lua 5.3脚本中设置shell环境变量

Windows - 嵌入式Lua实例 - 仅共享环境 - 语言的最近更改。

Lua脚本的结果需要在嵌入式Lua 5.3解释器的Windows主机应用程序中可用。我们大多数情况下将结果写入文本文件或剪贴板,让主机在脚本完成后读取这些。另一种方法是在当前共享的环境中设置一个envar(环境变量),这样主机和解释器就可以共享。这将消除文件IO和一些字符串复制操作。

Lua有os.getenv()但没有os.setenv(),因为后者不是ANSI-C的一部分。声称能够修改环境变量的外部模块似乎会改变其在_G中的本地副本,而不是真正的主机当前环境中的副本。(由于我没有阅读所有来源,我在这里根据这些书籍来判断。)此外,自从5.3版以来,全局变量_G不再存在,我认为这意味着大多数这些模块都不兼容当前版本的Lua。

问题:哪个模块允许在当前环境中更改变量,并且与Lua 5.3兼容?

点赞
用户1442917
用户1442917

你可以使用 winapi 模块中的 setenv 来修改当前进程的环境变量(它在内部使用 SetEnvironmentVariable)。

2016-12-28 22:30:28