次のようなコマンドライン引数のセットを解析したい:
-p[project file path] -s[name 1]=[value 1] ... -s[name n]=[value n]
正確に 1 つのプロジェクトp
と任意の数の設定がある場合s
。
使ってみましたNDesk.Options
var set = new OptionSet {
{ "p=", "the project file", v => { /* do stuff */ } },
{ "s=", "a setting", (m, v) => { /* do stuff */ } },
};
これはほとんどの場合うまく機能しvalue
ますが、ファイル パスが (引用符で囲まれていても) の場合\
、パーサーはすべてを右にドロップします。OptionSet
から継承した独自のクラスで parse メソッドをオーバーライドすることで、これをハッキングしましNDesk.Options.OptionSet
たが、この種の機能をすぐに処理できるライブラリがあるかどうか疑問に思っていましたか?
アップデート
申し訳ありませんが\
、:
失敗した例のセットは次のとおりです。
-sSetting=C:\Temp
-sSetting="C:\Temp"
-s"Setting=C:\Temp"
それらはすべて失敗しますOptionException Error: Found 3 option values when expecting 2.