如何将参数数组传递给批处理文件?

时间:2012-06-29 06:30:01

标签: batch-file

我正在使用名为Formalbuild.bat的批处理文件,它将采用名为componentName的参数名称。

对于前。我将构建如下的不同组件。

    Formalbuild.bat ServiceComponent
    Formalbuild.bat DatamodelComponent
    Formalbuild.bat 
                ...
                ...
    Formalbuild.bat SomeXYZComponent

是否可以创建组件名称数组并将逐个组件传递给批处理文件来进行构建?

3 个答案:

答案 0 :(得分:4)

由于只有组件名称发生变化,您可以使用for循环或更好的for/f循环。

FOR %%C in (ServiceComponent DatamodelComponent SomeXYZComponent ) do (
    call Formalbuild.bat %%C
)

如果组件列表很长,您也可以将它们分成多行

FOR %%C in (ServiceComponent 
DatamodelComponent
component3
...
component_n
SomeXYZComponent ) do (
    call Formalbuild.bat %%C
)

答案 1 :(得分:2)

简单的计数循环不足够吗?

for /l %%x in (1,1,N) do call Formalbuild.bat Component%%x

N替换为正确的数字。

如果要在命令行上运行它,请使用

for /l %x in (1,1,N) do Formalbuild.bat Component%x

由于您的问题中有一个PowerShell标记(尽管您从未提及过):

1..N | %{Formalbuild.bat Component$_}

像往常一样用实际值替换N.

答案 2 :(得分:1)

for %%a in (
    Component1
    Component2
    Component3
    ...
    ...
    ComponentN) do call :FormalBuild %%a

:FormalBuild
set THING_TO_BUILD=%1
REM call your build stuff here with %THING_TO_BUILD% identifying what you are building