用Lua执行powershell命令

时间:2016-12-08 12:46:07

标签: windows powershell lua execute

晚上好,

我有一个与我合作的程序,它有一个板载lua编译器,允许自定义写入操作。

由于工具本身非常有限,特别是如果它通过网络进行复杂的反应,我想使用Powershell而不是lua。

可悲的是,没有太多可以找到的(至少我没有),os.execute()io.popen()之类的东西使用Windows的标准命令行。

有人知道一个库或其他方式使用Powershell和lua。

我已尝试过的内容: 我尝试用Powershell编辑器编写一个命令行脚本并用os.execute运行这个脚本,但是它打开它作为文本文件,最好直接在lua中编写命令,但如果没有别的办法,执行一个Powershell脚本直接也没问题。 (在Windows中,您可以使用鼠标右键“单击/使用Powershell执行”

来执行脚本

2 个答案:

答案 0 :(得分:3)

-- You can generate PowerShell script at run-time
local script = [[
Write-Host "Hello, World!"
]]
-- Now create powershell process and feed your script to its stdin
local pipe = io.popen("powershell -command -", "w")
pipe:write(script)
pipe:close()

答案 1 :(得分:1)

您对问题的描述会让您听起来像是在使用os.execute("powershellscript.ps1")之类的命令,并且该调用会使用您的字符串作为建议的命令行来调用cmd.exe。通常,Windows会打开.PS1文件进行编辑;这是一个刻意的安全决定。相反,请尝试更改os.execute()命令以显式调用PS:os.execute("powershell.exe -file powershellscript.ps1")。如果需要将参数传递给脚本,请将它们括在{}中。有关从命令行调用PowerShell的更多信息,请参阅https://msdn.microsoft.com/en-us/powershell/scripting/core-powershell/console/powershell.exe-command-line-help