簡體   English   中英

在Windows批處理文件中尋找Unix風格的'getopt'命令行解析

[英]Looking for Unix style 'getopt' command line parsing in a Windows batch file

誰能幫助我在Windows批處理文件中找到一些解析命令行args的東西,就像使用getopt / getopts在Unix shell腳本中一樣? 不必全是Posix-y; 只是我可以指定期望的開關,其中一些需要/允許一個參數。 它們不需要是“長”開關; 單個字符將起作用。

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

您可以使用類似的方法(-h沒有args,因此之后沒有移位,-b和-s需要附加的args,因此進行移位)。

: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

從Unix / Linux可以知道,沒有像命令行命令行參數這樣的getopt / getopts解析方法。

批處理文件只知道%0%1%2 ,...和%* (以及諸如%~0%~1 ...之類的變體,如果有arg的話,它們會刪除引號)。

最多九個參數。 如果還有更多要處理的內容,則可以使用shift (如果發生enableextensionsenableextensionsshift /1 )來刪除第一個arg並轉移其余的arg。

基本上就是這樣。


(也許您應該更多地解釋要使用批處理實現的目標,為什么必須使用批處理以及其他外部約束是什么。)

看一下: https : //github.com/frossm/getopt.btm-這是我見過的最完整的實現之一。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM