【发布时间】:2014-11-05 18:52:02
【问题描述】:
我有一个 Lua 脚本,我想从这个文件中执行一个批处理文件;我该怎么做?
我看过以下示例,我认为可以这样做,但回想起来我可能误解了它们的目的:
os.execute('C:\\tmp\\MyFile.bat')
或
local handle = io.open('C:\\tmp\\MyFile.bat')
handle:close()
我相信这个问题之前已经被问过和回答过:How do I run an executable using Lua?
但是我的代码失败了;我不确定为什么。例如,我需要为“os”加载一个库吗?
当我尝试运行此代码时,我收到以下错误:
"尝试索引一个 nil 值"
【问题讨论】:
-
那些例子不适合你怎么办?如果您收到其中任何一个错误,请包括这些错误。
-
我已将其添加到帖子中;对不起,我漏掉了。
-
我认为这是第二个 (
io.open) 案例?这只是意味着io.open没有返回句柄,这意味着某些事情失败了。在这种情况下,io.open返回第二个错误值。local handle, err = io.open(...)if not handle then print(err) else handle:close() end`. -
同样
io.open打开文件进行读/写。它不执行任何操作。使用os.execute或io.popen来执行进程。 -
我试过 io.popen 和 os.execute ,好像 io/os 不可见;有我必须加载的库吗?
标签: lua