http://www.sellsbrothers.com/tools/Genghis/ の「コマンドラインパーサー」などのコマンドライン引数パーサーを探しています。
私が探している機能:
PS:「コマンドラインパーサー」は非常に優れており、そのデザインはとても気に入っていますが、ドキュメントも新しいアップデートもありません。必要なパラメーターを確認します
私の個人的なお気に入りのサードパーティのコマンドライン解析ライブラリは Command Line Parser であり、これがあなたが参照しているものだと思います。最新のリリースは2か月未満前であり、定期的なコミットがあります。より成熟した製品が必要な場合は、monoプロジェクトのコンソールライブラリをチェックアウトできます(現時点では名前空間への直接リンクは見つかりませんが、monoフレームワークの一部です)
Ndesk.optionsをご覧ください。
現在は Mono.Options と呼ばれています。
人気のある非常に包括的なCコマンドラインパーサーは GNU getopt です。これは、C#/。Net向けに何度か移植(または複製)されています。これらのいくつかが含まれます:
好きなのを選びな!他にもいくつかあり、グーグルはそれらについてあなたに伝えることができます、
悲しいことに、標準的な方法でそれを処理するための組み込みのサポートはありません。 PowerShellを調べましたか?そのシェルには、あなたが望んでいることと似たようなことを正確に行うクラスがあるに違いありません。
Edit:fatcat1111が指摘するように、この機能は.net 4.0の最終バージョンには付属していませんでした。
C#4.0にはかなり良いものがあります。おそらくまだあまり役に立たないかもしれませんが、組み込まれたものへのジャンプが簡単になったときに何かを検討することを検討する必要があります。バートデスメットは B#ブログ でそれについて話しました。
C#3.0クックブックのパーサーを使用しています。
この本のすべての例は、ここからダウンロードできます。 http://examples.oreilly.com/9780596516109/
「引数」を検索してください。それをすべて自分のクラスに入れるために、いくつかの小さなコード変更を行う必要がありますが、これは大きな問題ではありません。
最後の2つを除くすべてのポイントをサポートします(パラメーターの組み合わせとスペースの不足)。
BizArkライブラリ には、コマンドラインパーサーが含まれています。
基本的には、CmdLineObjectを継承するクラスを作成し、コマンドラインから設定するプロパティを追加し、CmdLineArgAttributeをプロパティに追加してから、プログラムでInitializeを呼び出します。 ClickOnce URL引数もサポートしています!
機能(サイトから)...
このパーサーの使用を開始したら、自分でメンテナンスするか、他の人に頼ってメンテナンスしてもらう必要があることを考慮してください。最も重要で差し迫った要件から始めて、独自に作成した方がよい場合があります。私が取り組んできたほとんどのコンソールベースのアプリケーションのために、かなり複雑なコマンドライン解析を作成するのにそれほど多くの作業を必要としないことがわかりました。
また、解析が複雑になりすぎると、コマンドラインの使用をやめるときが来ることもわかりました。
私はこれがあなたが探しているものではないことを賭けていますが、:
ここで誰かがその問題を抱えており、彼の最初の考えは「おい、ocamlにはかなり良いものがある!」というもので、すぐにF#に移植しました。
あなたは私のものを好きかもしれません Rug.Cmd
使いやすく、拡張可能なコマンドライン引数パーサー。ハンドル:Bool、Plus/Minus、String、String List、CSV、列挙。
組み込みの「/?」ヘルプモード。
組み込みの「/ ??」および「/?D」ドキュメントジェネレーターモード。
static void Main(string[] args)
{
// create the argument parser
ArgumentParser parser = new ArgumentParser("ArgumentExample", "Example of argument parsing");
// create the argument for a string
StringArgument StringArg = new StringArgument("String", "Example string argument", "This argument demonstrates string arguments");
// add the argument to the parser
parser.Add("/", "String", StringArg);
// parse arguemnts
parser.Parse(args);
// did the parser detect a /? argument
if (parser.HelpMode == false)
{
// was the string argument defined
if (StringArg.Defined == true)
{
// write its value
RC.WriteLine("String argument was defined");
RC.WriteLine(StringArg.Value);
}
}
}
編集:これは私のプロジェクトであり、そのため、この回答は第三者からの支持と見なされるべきではありません。それは私が書いているすべてのコマンドラインベースのプログラムにそれを使用するということです、それはオープンソースであり、他の人がそれから利益を得ることが私の希望です。
私は、Pythonの組み込みライブラリであるOptParseへのC#ポートのファンです。ここにある他の提案のほとんどと比較して使用するのはかなり簡単で、自動解析だけでなく多くの便利な機能が含まれています。