J'ai besoin de créer un script batch Windows où je dois passer quelques arguments en ligne de commande. Ces arguments peuvent apparaître dans n'importe quel ordre, mais le script doit les récupérer correctement en fonction du nom de l'argument. Par exemple:
<scriptname> -age <agevalue> -gender <gender>
<scriptname> -gender <gender> -age <agevalue>
Le script peut être appelé de l'une des deux manières ci-dessus, mais l'âge et le sexe doivent être correctement récupérés et attribués aux variables. Les arguments peuvent être identifiés par le commutateur qui les précède - c'est-à-dire, -age, -gender, etc.
Quelqu'un peut-il me donner un exemple d'identification de cela en interne?
windows
batch
command-line-arguments
Dhiwakar Ravikumar
la source
la source
if /I "%~1" == "--age" ...
(notez le tilde). Cela fonctionne également pour les paramètres vides ou les paramètres mis entre guillemets.Pouvez-vous le faire avec Powershell? ou doit-il être batch? Powershell le rend agréable et facile, il vous suffit d'ajouter quelque chose comme ça en haut de votre script, puis vous pouvez appeler chaque paramètre dans n'importe quel ordre
Vous pouvez le faire avec batch, mais cela nécessitera beaucoup de vérification des paramètres. Voici quelques liens de quelques scripts batch qui le font
http://www.ericphelps.com/batch/samples/arguments.bat.txt
(Dupplicate possible de)
/programming/5215729/is-there-a-way-to-pass-parameters-by-name-and-not-by-order-to-a-batch-bat-f
la source