如何在 Lua 中保持 os.execute(...) 窗口打开?

我有一个简单的 Lua 项目,每隔几分钟运行一个 NodeJS 脚本。NodeJS 脚本设置一个函数间隔,并每秒左右向 API 发出一次请求。

我的 Lua 代码如下:

function Initialize()
    Running = false
end

function Update()
    if not Running then
        Running = true
        os.execute(table.concat({"npm", "i"}, " "))
        os.execute(table.concat({"npm", "start"}, " "))
    end
end

我该如何保持使用 os.execute() 打开的命令提示符窗口不关闭?命令完成后它会关闭,但我希望在关闭前能看到输出内容。不,我不希望在我的 Lua 代码中获得结果,我只想查看窗口。

提前感谢!

编辑:我正在运行 Windows 10

点赞
用户4237598
用户4237598

在同一个窗口上顺序运行 npm inpm start

os.execute([[start "NPM" %ComSpec% /D /E:ON /K "call npm.cmd i & call npm.cmd start"]])

在不同的窗口上顺序运行 npm inpm start

os.execute([[start "npm i" %ComSpec% /D /E:ON /K "call npm.cmd i"]])
os.execute([[start "npm start" %ComSpec% /D /E:ON /K "call npm.cmd start"]])

解释:使用 [[ 转义引号和 lua 序列。start 命令带有一些选项来执行 "npm i"。我不确定 call.cmd 是否必要(也可以不加),但出于 Mofi 的建议,我保留了它们。

2021-04-05 01:40:18