Windows 批处理脚本在数组中循环并使用值作为exe的参数

Windows 批处理脚本在数组中循环并使用值作为exe的参数,windows,batch-file,Windows,Batch File,你好,这里是强大的堆垛机 我有一个相当大的问题,我需要一个批处理脚本,将启动我的游戏与一组参数(-someone-somethingelse 0-language EN)等等。等到它做了一些事情并关闭,然后我需要用不同的参数再次启动它,然后它就开始了 基本上,我希望我的游戏在不同的语言设置下启动几次,我希望所有的语言都在一个数组中 set lang[0] = "EN" set lang[1] = "DE" ... set lang [n] = "..." 然后我想循环这些值,基本上用参数语言启

你好,这里是强大的堆垛机

我有一个相当大的问题,我需要一个批处理脚本,将启动我的游戏与一组参数(-someone-somethingelse 0-language EN)等等。等到它做了一些事情并关闭,然后我需要用不同的参数再次启动它,然后它就开始了

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

set lang[0] = "EN"
set lang[1] = "DE"
...
set lang [n] = "..."
然后我想循环这些值,基本上用参数语言启动游戏,在这里放置数组值

虽然我可以编写自己的游戏,但我从来不用编写windows脚本,而且我完全不懂这一点,实际上还有一个小小的最后期限:好吧,试试这个:

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]!
)

这应该可以满足您的需要。

我不会弄乱数组。相反,我将使用一个简单的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