C# でコマンドライン引数を解析する最良の方法は? [closed] 質問する

C# でコマンドライン引数を解析する最良の方法は? [closed] 質問する

パラメータを受け取るコンソール アプリケーションを構築する場合、 に渡される引数を使用できますMain(string[] args)

これまでは、その配列にインデックスを付けたりループしたりして、いくつかの正規表現を実行して値を抽出していました。しかし、コマンドが複雑になると、解析がかなり面倒になることがあります。

私が興味を持っているのは:

  • 使用するライブラリ
  • 使用するパターン

コマンドは常に次のような共通標準に準拠していると仮定します。ここで回答

ベストアンサー1

強くお勧めしますNDesk.オプションドキュメンテーション)および/またはモノ.オプション(同じAPI、異なる名前空間)。ドキュメントからの例:

bool show_help = false;
List<string> names = new List<string> ();
int repeat = 1;

var p = new OptionSet () {
    { "n|name=", "the {NAME} of someone to greet.",
       v => names.Add (v) },
    { "r|repeat=", 
       "the number of {TIMES} to repeat the greeting.\n" + 
          "this must be an integer.",
        (int v) => repeat = v },
    { "v", "increase debug message verbosity",
       v => { if (v != null) ++verbosity; } },
    { "h|help",  "show this message and exit", 
       v => show_help = v != null },
};

List<string> extra;
try {
    extra = p.Parse (args);
}
catch (OptionException e) {
    Console.Write ("greet: ");
    Console.WriteLine (e.Message);
    Console.WriteLine ("Try `greet --help' for more information.");
    return;
}

おすすめ記事