2010-08-16 34 views
4

任何人都可以幫助我找到某些東西來解析Windows批處理文件中的命令行參數,就像在使用getopt/getopts的Unix shell腳本中所做的那樣?它不一定都是Posix-y;只是我可以指定我期望的開關,哪些需要/允許參數。他們不需要是「長」開關;單個字符將起作用。在Windows批處理文件中尋找Unix風格'getopt'命令行解析

它可以是批處理文件調用的外部.exe文件。它必須是免費分發的。

+0

我認爲這是正確的答案:http://stackoverflow.com/questions/3973824/windows-bat-file-optional-argument-parsing – 2016-02-02 08:02:41

回答

0

正如你從Unix/Linux得知的,沒有像getopt/getopts那樣的命令行參數解析。

批處理文件只知道%0%1%2,...和%*(和這樣的變化%~0%~1 ...它刪除引號,應該有圍繞ARG的)。

最多九個參數。如果還有更多需要處理的內容,則可以使用shift(如果enableextensions發生,則相當於shift /1)刪除第一個參數並轉移其餘參數。

基本就是這樣。


(也許你應該更多地解釋你正在努力實現與批次,爲什麼你必須使用批處理,你的其他外部制約因素究竟是什麼。)

12

你行你像這個(-h沒有參數,因此在這之後沒有任何移動,-b和-s需要額外的參數,所以移動它們)。

: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