批处理脚本循环遍历数组并使用值作为exe的参数

时间:2014-08-10 18:21:20

标签: windows batch-file

你好有堆叠器!

我有一个问题,我需要一个批处理脚本,它将使用一组参数启动我的游戏(-something 1 -somethingelse 0 -language EN),依此类推。等到它做了一些东西然后关闭,之后我需要用不同的参数再次启动它,所以它就这样了。

基本上我希望我的游戏可以使用不同的语言设置启动几次,我希望将所有语言都放在一个数组中

set lang[0] = "EN"
set lang[1] = "DE"
...
set lang [n] = "..."

然后我想循环遍历这些值,并基本上使用参数-language put_array_values_here启动游戏。

虽然我可以编写自己的游戏,但我从来没有做过Windows脚本,而且我完全是绿色的,而实际上有一个小截止日期:<

你们可以帮忙吗?

2 个答案:

答案 0 :(得分:1)

好的,试试这个:

setlocal enabledelayedexpansion
:: Set number of languages:
set n=100

:: Set Values:
::: set "lang[0]=EN"
::: set "lang[1]=DE"
::: ...
::: set "lang[n]=..."

set "game=Game.exe -something 1 -somethingelse 0 -language "
:: Default game parameters ending in language and a trailing space

:: Loop to call all languages
for /l %%a in (0, 1, %n%) do (
%game%!lang[%%a]!
)

这应该做你想要的。

答案 1 :(得分:1)

我不会乱糟糟的数组。相反,我只是使用简单的FOR循环处理列表。只需在每种语言的括号内添加一行即可。

@echo off
for %%L in (
  EN
  DE
  etc.
) do yourGame.exe -language %%L

如果您的文本文件每行包含一种语言,则可以使用FOR / F代替

@echo off
for /f %%L in (language.txt) do yourGame.exe -language %%L