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

Batch file 如何将参数数组传递给批处理文件?,batch-file,Batch File,我有一个名为Formalbuild.bat的批处理文件,它将使用名为componentName的参数名 例如,我将构建不同的组件,如下所示 Formalbuild.bat ServiceComponent Formalbuild.bat DatamodelComponent Formalbuild.bat ... ... Formalbuild.bat SomeXYZComponent 是否可以创

我有一个名为Formalbuild.bat的批处理文件,它将使用名为componentName的参数名

例如,我将构建不同的组件,如下所示

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

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

简单的计数循环难道不够吗

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标签(尽管您从未提及):


与往常一样,用实际值替换N。

由于只有组件名称发生更改,您可以使用
for
循环,或者更好地使用
for/f
循环

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

我更新了我的问题,因为它假设我可以通过改变最后一位数字来循环。
FOR %%C in (ServiceComponent 
DatamodelComponent
component3
...
component_n
SomeXYZComponent ) do (
    call Formalbuild.bat %%C
)