Ich muss ein Windows-Batch-Skript erstellen, in dem ich einige Befehlszeilenargumente übergeben muss. Diese Argumente können in beliebiger Reihenfolge angezeigt werden, das Skript sollte sie jedoch anhand des Argumentnamens ordnungsgemäß erfassen. Z.B:
<scriptname> -age <agevalue> -gender <gender>
<scriptname> -gender <gender> -age <agevalue>
Das Skript kann auf eine der beiden oben genannten Arten aufgerufen werden, aber Alter und Geschlecht sollten richtig erfasst und Variablen zugewiesen werden. Die Argumente können durch den Schalter vor ihnen identifiziert werden - dh -age, -gender usw.
Kann mir bitte jemand ein Beispiel geben, wie ich dies intern identifizieren kann?
windows
batch
command-line-arguments
Dhiwakar Ravikumar
quelle
quelle
if /I "%~1" == "--age" ...
(beachten Sie die Tilde). Dies funktioniert auch für leere Parameter oder Parameter, die in doppelte Anführungszeichen gesetzt werden.Schaffst du das mit Powershell? oder muss es chargenweise sein? Powershell macht es schön und einfach. Sie müssen nur so etwas oben in Ihr Skript einfügen und können dann jeden Parameter in beliebiger Reihenfolge aufrufen
Sie können dies mit Batch tun, aber es erfordert viele Parameterprüfungen. Hier sind einige Links einiger Batch-Skripte, die dies tun
http://www.ericphelps.com/batch/samples/arguments.bat.txt
(Mögliches Dupplikat von)
/programming/5215729/is-there-a-way-to-pass-parameters-by-name-and-not-by-order-to-a-batch-bat-f
quelle