Mic*_*ell 5 windows command-line parsing cmd batch-file
任何人都可以帮我找到解析Windows批处理文件中的命令行参数的方法,就像在Unix shell脚本中使用getopt/getopts一样吗?它不一定都是Posix-y; 只是我可以指定我期望的开关,其中哪些需要/允许参数.它们不需要是"长"开关; 单个字符将起作用.
它可以是批处理文件调用的外部.exe.它必须是可自由分发的.
小智 13
你可以这样的东西(-h没有args,因此之后没有移位,-b和-s需要额外的args,所以移动它们).
:GETOPTS
if /I "%1" == "-h" goto Help
if /I "%1" == "-b" set BASE=%2 & shift
if /I "%1" == "-s" set SQL=%2 & shift
shift
if not "%1" == "" goto GETOPTS
Run Code Online (Sandbox Code Playgroud)
正如您在 Unix/Linux 中所知,不存在类似于 getopt/getopts 的命令行参数解析。
批处理文件只知道%0, %1, %2, ... 和%*(以及诸如 %~0, %~1... 之类的变体,如果参数周围有引号,它会删除引号)。
最多九个参数。如果还有更多需要处理,您可以使用shift(相当于shift /1ifenableextensions发生)删除第一个参数并移动其余的。
基本上就是这样。
(也许您应该更多地解释您到底想通过批处理实现什么目标,为什么必须使用批处理,以及您的其他外部约束是什么。)
| 归档时间: |
|
| 查看次数: |
5275 次 |
| 最近记录: |