2012-06-29 3 views
2

У меня есть командный файл Formalbuild.bat, он будет иметь имя параметра, называемое componentName.Как передать массив аргументов в пакетный файл?

Для примера. Я буду строить различные компоненты, как показано ниже.

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

Можно ли создать массив имени компонента и передать один за другим компонентом в пакетный файл, чтобы сделать строить?

ответ

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 
) 
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 по фактическому значению, как обычно.

+0

Я обновил мой вопрос, как это дает предположение о том, что я могу проходной путем изменения последней цифры. – Samselvaprabu

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 
Смежные вопросы