Como passar parâmetros para um script de morcego

1

Desculpe a pergunta do meu novato, mas não tive que tocar nos scripts de morcego desde os dias do autoexec.bat ... e esse foi chamado diretamente do sistema.

Então eu me pergunto como posso passar argumentos para o meu roteiro de bat?

Por exemplo, eu quero criar n diretórios com um certo nome. Eu gostaria de usar um constructo como este:

for %%N in (1 to $arg1$) do mkdir $arg2$-%%N

Como resultado, eu gostaria de ter N diretórios chamados

  • nome-1
  • nome-2
  • nome-3

... e assim por diante.

Obrigado!

    
por raoulsson 26.08.2009 / 15:20

3 respostas

3

é apenas% 1% 2 ...% n para argument1, argument2, ..., argumentn

veja este por exemplo.

O loop for eu fiz assim:

FOR %%a IN ("filename1" "filename2" "filename3") DO something %%a -clean Lib -log errors >> logfilename
    
por 26.08.2009 / 15:26
4

Os arquivos em lote usam números de parâmetro posicionais (% 1,% 2,% 3) para indicar argumentos. Para o seu exemplo, seria:

para %% N em (1 para% 1) do mkdir% 2 - %% n

Aqui está um guia de referência .

Mas a construção do loop for está incorreta também - não há palavra-chave "to" nos arquivos em lote, tanto quanto eu sei. A coisa entre parênteses é suposto ser um conjunto (como: 1 2 3 4) - Eu não tenho certeza se você pode fazer um loop como você quer fazer sem usar rótulos e goto ...

Aqui está a sintaxe para o comando FOR .

Aqui está como você faria o loop usando labels e goto - não é bonito do ponto de vista de um programador - mas que tal um arquivo de lote?


set counter=%1
set count=1
:LOOP
if %count% GEQ %counter% GOTO END
mkdir %2-%count%
set /a count = %count% + 1
goto LOOP
:END
    
por 26.08.2009 / 15:32
0

Acho que o que você quer é:

@echo off
for /l %%a in (1,1,%1) do mkdir Folder-%%a
    
por 12.05.2011 / 10:16

Tags