使用 Lua 执行 powershell 命令
execute powershell commands with Lua
我有一个我正在使用的程序,它有一个板载 lua 编译器以允许自定义写入操作。
由于工具本身非常有限,特别是如果它用于网络上的复杂反应,我想在 lua 上使用 Powershell。
os.execute()
或 io.popen()
等方法使用来自 windows 的标准命令行,而不是 Powershell。
有没有办法将 Powershell 与 lua 一起使用?
我尝试用 Powershell 编辑器写一个命令行脚本,运行 这个脚本用 os.execute,但是它以文本文件的形式打开,最好直接把命令写在lua不过如果没有别的办法,直接执行Powershell脚本也行。 (在 Windows 本身你可以用鼠标右键执行脚本“click/Execute with Powershell”)
您对问题的描述听起来像是您正在使用 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。
-- 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()
我有一个我正在使用的程序,它有一个板载 lua 编译器以允许自定义写入操作。
由于工具本身非常有限,特别是如果它用于网络上的复杂反应,我想在 lua 上使用 Powershell。
os.execute()
或 io.popen()
等方法使用来自 windows 的标准命令行,而不是 Powershell。
有没有办法将 Powershell 与 lua 一起使用?
我尝试用 Powershell 编辑器写一个命令行脚本,运行 这个脚本用 os.execute,但是它以文本文件的形式打开,最好直接把命令写在lua不过如果没有别的办法,直接执行Powershell脚本也行。 (在 Windows 本身你可以用鼠标右键执行脚本“click/Execute with Powershell”)
您对问题的描述听起来像是您正在使用 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。
-- 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()