*NIX getopt 与 DOS 类似

*NIX getopt 与 DOS 类似

我想编写一个带有多个可选选项标志的 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

它包含更多有关处理批处理脚本中的参数的信息。

相关内容