我需要我的bat 文件接受多个可选的命名参数。
mycmd.bat man1 man2 -username alice -otheroption
例如,我的命令有 2 个强制参数和两个可选参数(-username),参数值为 alice,以及 -otheroption:
我希望能够将这些值提取到变量中。
只是给已经解决这个问题的人打电话。伙计,这些 bat 文件很痛苦。
最佳答案
虽然我倾向于同意@AlekDavis' comment ,尽管如此,在 NT shell 中还是有几种方法可以做到这一点。
我将利用 SHIFT 的方法命令和IF条件分支,像这样......
@ECHO OFF
SET man1=%1
SET man2=%2
SHIFT & SHIFT
:loop
IF NOT "%1"=="" (
IF "%1"=="-username" (
SET user=%2
SHIFT
)
IF "%1"=="-otheroption" (
SET other=%2
SHIFT
)
SHIFT
GOTO :loop
)
ECHO Man1 = %man1%
ECHO Man2 = %man2%
ECHO Username = %user%
ECHO Other option = %other%
REM ...do stuff here...
:theend
关于batch-file - Windows Bat文件可选参数解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3973824/