os.execute变量

时间:2013-03-26 05:54:11

标签: variables lua operating-system

我想通过单个Lua脚本使用我指定的选项启动多个Steam帐户。除了使用提供的代码启动之外,我几乎已经排序了所有内容。我不知道如何用这种格式“传递”变量。

function Steam(n, opt1, opt2, opt3)
os.execute[["start C:\Program" "Files\Sandboxie\Start.exe /box:Steam2 D:\Steam\steam.exe -login username password -opt1 -opt2 -opt3"]]
end

我设置了我的用户名和沙盒,以便只需要使用相同密码更改数字(fenriros2,fenriros3,Steam2,Steam3等)。

基本上,我想要这个;

Steam(3, -tf, -exit, -textmode)

要做;

os.execute[["start C:\Program" "Files\Sandboxie\Start.exe /box:Steam3 D:\Steam\steam.exe -login fenriros3 password -applaunch 440 -textmode"]]

我会在完成后使用-exit来关闭lua窗口。

我意识到我的代码并不完全有效,但这是以后的担心。现在我只需要让它运转起来。

非常感谢任何帮助,如果我错过了一些明显的东西,我会道歉,我在Lua仍然相当新。

1 个答案:

答案 0 :(得分:2)

第一个明显的一个。 [[]]分隔一个字符串,所以你需要做的就是为字符串创建一个变量并根据需要替换内容。

function Steam(n, opt1, opt2, opt3)
-- Set up execute string with placeholders for the parameters.
local strExecute = [["start C:\Program" "Files\Sandboxie\Start.exe /box:Steam{n} D:\Steam\steam.exe -login fenriros{n} password -{opt1} -{opt2} -{opt3}"]]

-- Use gsub to replace the parameters
-- You could just concat the string but I find it easier to work this way.
strExecute = strExecute:gsub('{n}',n)
strExecute = strExecute:gsub('{opt1}',opt1:gsub('%%','%%%%'))
strExecute = strExecute:gsub('{opt2}',opt2:gsub('%%','%%%%'))
strExecute = strExecute:gsub('{opt3}',opt3:gsub('%%','%%%%'))
os.execute(strExecute)
end

Steam(1,'r1','r2','r3')