次のようなコマンドライン引数のセットを解析したい:
-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.