0

指定したオプションを使用して単一の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でかなり新しいです。

4

1 に答える 1

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')
于 2013-03-26T08:10:55.737 に答える