Esta é uma questão ligeiramente diferente da Preenchendo a matriz no script em lote do DOS
Estou tentando compilar um aplicativo JavaScript usando o Google Closure Compiler. A lista de arquivos JavaScript cresceu para mais de 30 arquivos e estou procurando uma maneira de gerenciá-los. O que eu decidi é empurrar os arquivos para uma matriz usando algo como o seguinte:
set projectDrive=E:
set js_folder=\project\trunk\htdocs\script
set deploy_folder=\project\trunk\htdocs\bin
set closure_compiler=java -jar Z:\utils\compiler.jar
set arrayline[0]=\script\com\appstudio\utils\Shim.js
set arrayline[1]=\script\com\jquery\chosen.jquery.min.js
set arrayline[2]=\script\com\jquery\jquery-cookie.js
set arrayline[3]=\script\com\jquery\jquery.qtip.js
set arrayline[4]=\script\com\jquery\jquery.zclip.min.js
set arrayline[5]=\script\com\swfobject\swfobject.js
::etc
set arrayline[31]=\script\com\lastfolder\lastFile.js
De acordo com o post mencionado acima, eu sei que posso percorrer o array assim:
for /l %%n in (0,1,12) do (
echo !arrayline[%%n]!
)
No entanto, isso não me dá a saída de que preciso, pois cada eco está em uma nova linha. Eu preciso de uma string concatenada para o Closure Compiler que resultará em algo como isto:
%closureCompiler% --js "%deployFolder%\arrayline[0].js" --js "%deployFolder%\arrayline[1].js" --js_output_file "%deployFolder%\script.js"
Onde posso executar o Closure Compiler em uma lista concatenada de elementos de matriz no formato de --js "%deployFolder%\arrayline[x].js"
Isso é possível?
EDIT: Eu não mencionei originalmente que estou usando uma matriz porque esta é uma prova de conceito rápida e suja para um ambiente de integração contínua. Eu vou estar cuspindo esses arquivos de maneiras diferentes em diferentes contextos, mas a saída do Compilador de Fechamento é a primeira etapa desse processo. Eu estou preso com uma caixa do Windows por agora e meu IDE não faz o que eu quero, então eu estou trabalhando com arquivos em lote, apenas a escolha que fiz para esta fase do projeto.
fonte
Para esclarecer o objetivo, é para criar uma matriz de comprimento n contendo uma lista de arquivos a serem compilados através do google closure. Aqui está a solução rápida com um pouco de abstração:
fonte
Em vez de construir um array quando o que você quer é uma string, construa a string:
Você pode ter motivos para querer ficar com o array; no entanto, apenas acrescentar uma string atingiria seu objetivo de criar uma linha de comando para execução.
fonte