我想编写一个带有多个可选选项标志的 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 脚本 txt 文件中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
是否存在与 *nix getopts 等效的 DOS 程序?
答案1
在批处理脚本中,所有参数都存储在变量中%*
。每个参数都可以通过变量 %1 访问第一个参数,通过 %2 访问第二个参数,依此类推。您可以像这样处理参数,直到 %9。
更优雅的参数处理需要使用 shift 命令。
看一下这个 Stackoverflow 问题:https://stackoverflow.com/questions/14286457/using-parameters-in-batch-files-at-windows-command-line
它包含更多有关处理批处理脚本中的参数的信息。