Quiero escribir un script DOS con múltiples opciones opcionales. Tengo que analizar estas opciones opcionales.
Un ejemplo:
get_resolution.bat /?
get_resolution.bat /h input.jpg
get_resoltion.bat /v input.jpg
Bajo * NIX esto se puede hacer con getopts.
Los mismos ejemplos bajo * nix:
get_resolution -?
get_resolution -h input.jpg
get_resolution -v input.jpg
En el archivo txt * nix script, get_resolution
uno escribiría:
while getopts ?hv flag
do
case $flag in
?) man get_resolution
h) get_horizontal_resolution $1
v) get_vertical_resolution $1 ;;
esac
done
¿Existe un equivalente de DOS para los getopts * nix?
windows-10
batch
ms-dos
Francky Leyn
fuente
fuente
Respuestas:
En los scripts por lotes, todos los argumentos se almacenan en variables
%*
. Se puede acceder a cada argumento por la variable% 1 para el primer argumento, y% 2 para el segundo y así sucesivamente. Puede manejar los argumentos como este hasta% 9.Un manejo de argumentos más elegante requiere el uso de shift-command.
Eche un vistazo a esta pregunta de Stackoverflow: https://stackoverflow.com/questions/14286457/using-parameters-in-batch-files-at-windows-command-line
Tiene más información sobre el manejo de argumentos en scripts por lotes.
fuente