Em um arquivo em lotes, eu tenho que fazer (por exemplo) o seguinte?
@echo off
call other.bat %1 %2 %3 %4 %5 %6 %7 %8 %9
windows
scripting
batch-file
Roger Lipscombe
fonte
fonte
Respostas:
Os arquivos em lotes do Windows (desde o Windows XP, mas possivelmente anteriormente) oferecem suporte à
%*
construção, que avalia todos os parâmetros a partir de% 1 em diante.Infelizmente, isso não respeita o
SHIFT
comando, portanto o seguinte não funcionará:Ele ainda passará o primeiro parâmetro para o segundo arquivo em lote.
fonte
%*
preserva espaços em branco / aspas.Você pode reunir todos os argumentos usando algo como:
Isso funciona independentemente de quantos argumentos existem.
fonte
Se você quiser pular os três primeiros parâmetros, por exemplo, e repassar o restante:
Pode haver problemas com aspas nos parâmetros.
parabéns a Patrick Cuff, /programming/382587/how-to-get-batch-file-parameters-from-nth-position-on
fonte
Sim, eles fazem.
Você pode escrever seu exemplo da seguinte maneira:
Além disso: o shift é suportado no Windows ... Veja isso .
Mas, de fato, esse último link confirma que a mudança não funciona em combinação com% *:
fonte
fonte
call other.bat
com determinados parâmetros :( Onde eu escrevo "other.bat"? É possível remover "Índice (s) de parâmetros para extrair "query? Além disso,cls
não é necessário na solução final.