任何人都可以幫助我找到某些東西來解析Windows批處理文件中的命令行參數,就像在使用getopt/getopts的Unix shell腳本中所做的那樣?它不一定都是Posix-y;只是我可以指定我期望的開關,哪些需要/允許參數。他們不需要是「長」開關;單個字符將起作用。在Windows批處理文件中尋找Unix風格'getopt'命令行解析
它可以是批處理文件調用的外部.exe文件。它必須是免費分發的。
任何人都可以幫助我找到某些東西來解析Windows批處理文件中的命令行參數,就像在使用getopt/getopts的Unix shell腳本中所做的那樣?它不一定都是Posix-y;只是我可以指定我期望的開關,哪些需要/允許參數。他們不需要是「長」開關;單個字符將起作用。在Windows批處理文件中尋找Unix風格'getopt'命令行解析
它可以是批處理文件調用的外部.exe文件。它必須是免費分發的。
正如你從Unix/Linux得知的,沒有像getopt/getopts那樣的命令行參數解析。
批處理文件只知道%0
,%1
,%2
,...和%*
(和這樣的變化%~0
,%~1
...它刪除引號,應該有圍繞ARG的)。
最多九個參數。如果還有更多需要處理的內容,則可以使用shift
(如果enableextensions
發生,則相當於shift /1
)刪除第一個參數並轉移其餘參數。
基本就是這樣。
(也許你應該更多地解釋你正在努力實現與批次,爲什麼你必須使用批處理,你的其他外部制約因素究竟是什麼。)
你行你像這個(-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
我認爲這是正確的答案:http://stackoverflow.com/questions/3973824/windows-bat-file-optional-argument-parsing – 2016-02-02 08:02:41