Мне нужно создать пакетный скрипт Windows, где мне нужно передать несколько аргументов командной строки. Эти аргументы могут появляться в любом порядке, но сценарий должен правильно их подбирать на основе имени аргумента. Например:
<scriptname> -age <agevalue> -gender <gender>
<scriptname> -gender <gender> -age <agevalue>
Сценарий может быть вызван любым из двух вышеуказанных способов, но возраст и пол следует правильно подобрать и присвоить переменным. Аргументы могут быть идентифицированы переключателем перед ними - т.е. -age, -gender и т. Д.
Может кто-нибудь дать мне пример идентификации этого внутри?
windows
batch
command-line-arguments
Дивакар Равикумар
источник
источник
if /I "%~1" == "--age" ...
(обратите внимание на тильду). Это также работает для пустых параметров или параметров, которые заключаются в двойные кавычки.Можете ли вы сделать это с Powershell? или это должно быть партия? Powershell делает это легко и просто, вам просто нужно добавить что-то вроде этого в начало вашего скрипта, а затем вы можете вызывать каждый параметр в любом порядке
Вы можете сделать это с помощью пакета, но это потребует много проверки параметров. Вот несколько ссылок на некоторые пакетные сценарии, которые делают это
http://www.ericphelps.com/batch/samples/arguments.bat.txt
(Возможно дублирование)
/programming/5215729/is-there-a-way-to-pass-parameters-by-name-and-not-by-order-to-a-batch-bat-f
источник