Muszę utworzyć skrypt wsadowy systemu Windows, w którym muszę przekazać kilka argumentów wiersza polecenia. Argumenty te mogą pojawiać się w dowolnej kolejności, ale skrypt powinien je poprawnie odebrać na podstawie nazwy argumentu. Na przykład:
<scriptname> -age <agevalue> -gender <gender>
<scriptname> -gender <gender> -age <agevalue>
Skrypt można wywołać na jeden z dwóch powyższych sposobów, ale wiek i płeć powinny być odpowiednio wybrane i przypisane do zmiennych. Argumenty można rozpoznać po przełączniku przed nimi - tj. -Age, -gender itp.
Czy ktoś może podać mi przykład wewnętrznej identyfikacji?
windows
batch
command-line-arguments
Dhiwakar Ravikumar
źródło
źródło
if /I "%~1" == "--age" ...
(zwróć uwagę na tyldę). Działa to również w przypadku pustych parametrów lub parametrów, które są umieszczone w cudzysłowach.Czy możesz to zrobić za pomocą Powershell? czy to musi być partia? Powershell sprawia, że jest to przyjemne i łatwe, wystarczy dodać coś takiego na górze skryptu, a następnie można wywołać każdy parametr w dowolnej kolejności
Możesz to zrobić wsadowo, ale będzie to wymagało wielu kontroli parametrów. Oto kilka linków niektórych skryptów wsadowych, które to robią
http://www.ericphelps.com/batch/samples/arguments.bat.txt
(Możliwy duplikat)
/programming/5215729/is-there-a-way-to-pass-parameters-by-name-and-not-by-order-to-a-batch-bat-f
źródło