在一个目录中运行所有Lua文件。

假设我有一个名为 main.lua 的文件,在一个子目录中我有一系列 Lua 脚本,我想要运行它们。有没有一种方法可以在纯 vanilla Lua 中运行子目录中的所有脚本 - 也就是说,不需要加载任何外部模块或软件包?据我所知,requiredofile 仅适用于单个文件,我想能够做到像 require "subdir/*" 这样的事情。

原文链接 https://stackoverflow.com/questions/7776084

点赞
stackoverflow用户734069
stackoverflow用户734069

有没有一种方式可以在纯基础版 Lua 中运行子目录中的所有脚本 - 也就是说,无需加载任何外部模块或包?

没有。Lua 被设计为一种嵌入式语言。因此,“纯 Lua”非常小。它几乎没有基于文件系统的功能;无法遍历目录和匹配文件。

如果你认真考虑将 Lua 作为 shell 脚本语言使用,那么你需要习惯于使用 Lua 模块来完成一些任务。

2011-10-15 06:00:41
stackoverflow用户151501
stackoverflow用户151501

你是否能访问 os.execute?你能否维护一个你想要加载的模块列表?

如果你有一个完整的 Lua 解释器,那么做你想要的事情就很容易。(以下是 Windows 的一个示例)

 local f = io.popen("dir /b") for mod in f:lines() do require(mod) end
2011-10-21 17:01:54