使用 Lua 执行 Powershell 命令

我有一个使用内置 Lua 编译器的程序,允许自定义编写操作。

由于工具本身非常有限,特别是在处理复杂的网络反应方面,我想使用 Powershell 而不是 Lua。

诸如 os.execute()io.popen() 的方法使用 Windows 标准命令行而不是 Powershell。

是否有一种方法可以在 Lua 中使用 Powershell?


我尝试使用 Powershell 编辑器编写命令行脚本,并使用 os.execute 运行此脚本,但它打开为文本文件,最好直接在 lua 中编写命令,但如果没有其他方法,则直接执行 Powershell 脚本也可以。 (在 Windows 自身中,您可以使用鼠标右键“单击/使用 Powershell 执行”来执行脚本)。

点赞
用户6083222
用户6083222

你描述的问题听起来像是你正在使用诸如 os.execute("powershellscript.ps1") 这样的命令,而该调用会使用你的字符串作为命令行。通常情况下,Windows 会打开一个 .PS1 文件进行编辑;这是为了安全而做出的明智决定。相反,尝试修改 os.execute() 命令,以显式地调用 PS:os.execute("powershell.exe -file powershellscript.ps1")。如果你需要向脚本传递参数,可以将它们括在 {} 中。有关从命令行调用 PowerShell 的更多信息,请参阅 https://docs.microsoft.com/zh-cn/powershell/scripting/overview?view=powershell-7

2016-12-08 13:01:14
用户6834680
用户6834680
-- 您可以在运行时生成 PowerShell 脚本
local script = [[
Write-Host "Hello, World!"
]]
-- 现在创建 PowerShell 进程并将您的脚本提供给其 stdin
local pipe = io.popen("powershell -command -", "w")
pipe:write(script)
pipe:close()
2016-12-08 13:18:45