【问题标题】:How Can I Execute a Non-Lua File From a Lua Script?如何从 Lua 脚本执行非 Lua 文件?
【发布时间】: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


【解决方案1】:

打开批处理文件时必须使用os.execute[[yourFile.bat]]。
有关此here的更多信息

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-24
    • 1970-01-01
    • 1970-01-01
    • 2018-05-17
    • 2018-02-24
    • 1970-01-01
    • 2013-12-09
    • 1970-01-01
    相关资源
    最近更新 更多