質問
C#のgetoptライブラリを探しています。これまでのところ、いくつか( phpguru 、 XGetOptCS 、 getoptfordotnet )が、これらはCのgetoptの一部のみをサポートする未完了の試みのように見えます。 完全なgetopt c#実装はありますか?
解決
getoptの.NET実装は次のとおりです。 http://www.codeplex.com/getopt
他のヒント
Miguel de Icaza Mono.Optionsについての評価。 nugetパッケージを使用するか、単に単一のC#ソースファイルをプロジェクトに追加します。
後世の場合:
CommandParserは別のものです BSDライセンス
ここは私が書いたものです、かなりうまく機能し、ごく少量のコードに対して非常に多くの機能を備えています。ただし、getoptsではありませんが、ニーズに合う場合があります。
お気軽に質問してください。
getoptではありませんが、 NConsoler を試すことができます。属性を使用して、引数とアクションを定義します。
Monoプロジェクトには属性に基づいたものがあります(むしろありました)が、最後に、古いものとしてマークされていることを確認しました。ただし、オープンソースなので、コードを引き出して自分で使用できる場合があります。
レコードの場合、 NUnit には、 src \ ClientUtilities \ utilに単純な1ファイルのコマンドラインパーサーが含まれています。 \ CommandLineOptions.cs
( src \ ConsoleRunner \ nunit-console
の下にある ConsoleRunner.cs
および Runner.cs
の使用例を参照してください) )。ファイル自体にはライセンス情報は含まれておらず、そのアップストリームへのリンク ;死んでいるようで、その法的地位は不確かです。
パーサーは、名前付きフラグパラメーター( / verbose
など)、値を持つ名前付きパラメーター( /filename:bar.txt
など)および名前のないパラメーター、つまり Windows Scripting Hostがそれらを解釈する方法のスタイル。オプションには、 /
、-
、および-
のプレフィックスが付いている場合があります。
私の友人が docopt.net を提案しました。 Node.JS用の docopt ライブラリに基づくコマンドライン引数解析ライブラリ。使い方は非常に簡単ですが、高度であり、記述したヘルプ文字列に基づいて引数を解析します。
サンプルコードを次に示します。
using System;
using DocoptNet;
namespace MyProgram
{
static class Program
{
static void Main(string[] args)
{
// Usage string
string usage = @"This program does this thing.
Usage:
program set <something>
program do <something> [-o <optionalthing>]
program do <something> [somethingelse]";
try
{
var arguments = new Docopt().Apply(usage, args, version: "My program v0.1.0", exit: false);
foreach(var argument in arguments)
Console.WriteLine("{0} = {1}", argument.Key, argument.Value);
}
catch(Exception ex)
{
//Parser errors are thrown as exceptions.
Console.WriteLine(ex.Message);
}
}
}
}
最初のリンクとこちらの両方で、ドキュメント(ヘルプメッセージ形式を含む)を見つけることができます。
それが誰かを助けることを願っています!