Windows Bat文件可选参数解析

Windows Bat文件可选参数解析

我需要我的bat文件接受多个可选的命名参数。

mycmd.bat man1 man2 -username alice -otheroption

例如,我的命令有2个必需参数,以及两个参数值为alice的可选参数(-username)和-otheroption:

我希望能够将这些值插入变量中。

只是给那些已经解决了这个问题的人打电话。男人这些蝙蝠文件很痛苦。


慕侠2389804
浏览 1389回答 3
3回答

繁花不似锦

虽然我倾向于同意@AlekDavis的评论,但在NT shell中仍有几种方法可以做到这一点。我将利用SHIFT命令和IF条件分支的方法,这样的......@ECHO OFFSET man1=%1SET man2=%2SHIFT & SHIFT:loopIF 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

翻翻过去那场雪

如果你想使用可选参数,而不是命名参数,那么这种方法对我有用。我认为这是更容易遵循的代码。REM Get argument values.  If not specified, use default values.IF "%1"=="" ( SET "DatabaseServer=localhost" ) ELSE ( SET "DatabaseServer=%1" )IF "%2"=="" ( SET "DatabaseName=MyDatabase" ) ELSE ( SET "DatabaseName=%2" )REM Do workECHO Database Server = %DatabaseServer%ECHO Database Name   = %DatabaseName%
打开App,查看更多内容
随时随地看视频慕课网APP