* NIX getopt для DOS

473
Francky Leyn

Я хочу написать сценарий DOS с несколькими опциональными флагами. Я должен разобрать эти дополнительные параметры.

Пример:

get_resolution.bat /? get_resolution.bat /h input.jpg get_resoltion.bat /v input.jpg 

В * NIX это можно сделать с помощью getopts.

Те же примеры под * nix:

get_resolution -? get_resolution -h input.jpg get_resolution -v input.jpg 

В текстовом файле * nix script get_resolutionможно написать:

while getopts ?hv flag  do  case $flag in  ?) man get_resolution  h) get_horizontal_resolution $1 v) get_vertical_resolution $1 ;; esac done 

Существует ли DOS-эквивалент для * nix getopts?

0
Вы наверняка не говорите о DOS. Пожалуйста, внимательно прочитайте описания тегов и соответственно отредактируйте свой вопрос. Daniel B 5 лет назад 3

1 ответ на вопрос

1
Aulis Ronkainen

В пакетных скриптах все аргументы хранятся в переменной %*. Каждый аргумент может быть доступен с помощью переменной% 1 для первого аргумента и% 2 для второго и т. Д. Вы можете обрабатывать подобные аргументы до% 9.

Более элегантная обработка аргументов требует использования команды shift.

Посмотрите на этот вопрос Stackoverflow: https://stackoverflow.com/questions/14286457/using-parameters-in-batch-files-at-windows-command-line

Он содержит больше информации об обработке аргументов в пакетных скриптах.

Похожие вопросы