慕俠2389804
2019-08-02 14:12:57
Windows Bat文件可選參數(shù)解析我需要我的bat文件接受多個(gè)可選的命名參數(shù)。mycmd.bat man1 man2 -username alice -otheroption例如,我的命令有2個(gè)必需參數(shù),以及兩個(gè)參數(shù)值為alice的可選參數(shù)(-username)和-otheroption:我希望能夠?qū)⑦@些值插入變量中。只是給那些已經(jīng)解決了這個(gè)問題的人打電話。男人這些蝙蝠文件很痛苦。
3 回答

繁花不似錦
TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超4個(gè)贊
雖然我傾向于同意@AlekDavis的評(píng)論,但在NT shell中仍有幾種方法可以做到這一點(diǎn)。
我將利用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

翻翻過去那場(chǎng)雪
TA貢獻(xiàn)2065條經(jīng)驗(yàn) 獲得超14個(gè)贊
如果你想使用可選參數(shù),而不是命名參數(shù),那么這種方法對(duì)我有用。我認(rèn)為這是更容易遵循的代碼。
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 work
ECHO Database Server = %DatabaseServer%
ECHO Database Name = %DatabaseName%
- 3 回答
- 0 關(guān)注
- 1490 瀏覽
添加回答
舉報(bào)
0/150
提交
取消