Preciso criar um script em lote do Windows em que preciso passar alguns argumentos da linha de comando. Esses argumentos podem aparecer em qualquer ordem, mas o script deve buscá-los corretamente com base no nome do argumento. Por exemplo:
<scriptname> -age <agevalue> -gender <gender>
<scriptname> -gender <gender> -age <agevalue>
O script pode ser chamado de qualquer uma das duas maneiras acima, mas a idade e o sexo devem ser adequadamente escolhidos e atribuídos às variáveis. Os argumentos podem ser identificados pelo comutador antes deles - ou seja, -age, -gender, etc.
Alguém pode me dar um exemplo de identificação interna?
windows
batch
command-line-arguments
Dhiwakar Ravikumar
fonte
fonte
if /I "%~1" == "--age" ...
(observe o til). Isso também funciona para parâmetros vazios ou parâmetros que são colocados entre aspas duplas.Você pode fazer isso com o Powershell? ou precisa ser em lote? O Powershell torna tudo fácil e agradável, você só precisa adicionar algo assim na parte superior do seu script e, em seguida, pode chamar cada parâmetro em qualquer ordem
Você pode fazer isso com lotes, mas isso exigirá muita verificação de parâmetros. Aqui estão alguns links de alguns scripts em lotes que fazem isso
http://www.ericphelps.com/batch/samples/arguments.bat.txt
(Possível duplicado de)
/programming/5215729/is-there-a-way-to-pass-parameters-by-name-and-not-by-order-to-a-batch-bat-f
fonte