.NET環境におけるコマンドライン解析クラスCommundLine
6882 ワード
最近、コマンドラインのパラメータをCで取り出したいというプログラムがありますが、C言語でプログラムした時にGetOptsが使いやすいものがありました.まず、インターネットからGetOptsのNETクラスを探してみましたが、長い間探してみたら、古いものばかりでなく、このクラスの使用説明もありませんでした.
その後、CommundLine ArgenmentParsserクラスのライブラリを見つけました.http://commandlinearguments.codeplex.com/ですが、文書は多くありません.
その後、The Apache Commons CLIクラスライブラリが発見されました.各種コマンドラインのパラメータを処理できます.残念ながらJAVAクラスです.
次の2つのところに関連して紹介されています.
http://commons.apache.org/cli/usage.html
http://www.cnblogs.com/dainiao01/archive/2009/02/07/2250211.html
最後に最適なNETのCommnadLineを見つけました.http://commandline.codeplex.com/、とても使いやすいです.
使用方法:
1)Command Line.dllをダウンロードする
2)プログラムに引用を加える
3)まずusingを加えます
using CommundLine
using CommundLine.Text.
4)Options類を作る
class Options
{
//短いパラメータ名、長いパラメータ名、オプションパラメータ、標準値、ヘルプテキストなどですか?
//最初のパラメータ-d
[Option(「d」、「dir」、Required=true、HelpText=「PGN Directory to read.」)
public string PgnDir{get;set}
//2番目のパラメータ-s
[Option(「s」、「step」、DefaultValue=30、HelpText=「The maximum steps in PGN game to process.」)
public int MaxStep{get;set;}
[HelpOption]
public string GetUsage()
{
//前のパラメータ設定に基づいて自動的に使用説明を生成できるはずです.ここでは使用していません.
var usage=new StrigBuider()
usage.Apendline(「OpeningBook 1.0」)
usage.Apendline(「-d PgnDir[-s MaxStep=30」)
return usage.ToString()
}
)
5)メインプログラムMainで使用する
var options=new Options()
ICommandline Parser=new CommundLine Parser();
if(parser.Parsseargments(args,options)
{
string pgnDir=options.PgnDir;
int maxStep=options.MaxStep;
//パラメータを取り出しました.自由に使ってもいいです.
//本例ではパラメータが簡単で、やや役不足です.
)
else {
Consolie.Writeline(options.GetUsage);
)
最近のcommandineのバージョンが少し変わりました.また1.7.1.2バージョンのリードを使ってテストしました.現在の書き方はこうです.
その後、CommundLine ArgenmentParsserクラスのライブラリを見つけました.http://commandlinearguments.codeplex.com/ですが、文書は多くありません.
その後、The Apache Commons CLIクラスライブラリが発見されました.各種コマンドラインのパラメータを処理できます.残念ながらJAVAクラスです.
次の2つのところに関連して紹介されています.
http://commons.apache.org/cli/usage.html
http://www.cnblogs.com/dainiao01/archive/2009/02/07/2250211.html
最後に最適なNETのCommnadLineを見つけました.http://commandline.codeplex.com/、とても使いやすいです.
使用方法:
1)Command Line.dllをダウンロードする
2)プログラムに引用を加える
3)まずusingを加えます
using CommundLine
using CommundLine.Text.
4)Options類を作る
class Options
{
//短いパラメータ名、長いパラメータ名、オプションパラメータ、標準値、ヘルプテキストなどですか?
//最初のパラメータ-d
[Option(「d」、「dir」、Required=true、HelpText=「PGN Directory to read.」)
public string PgnDir{get;set}
//2番目のパラメータ-s
[Option(「s」、「step」、DefaultValue=30、HelpText=「The maximum steps in PGN game to process.」)
public int MaxStep{get;set;}
[HelpOption]
public string GetUsage()
{
//前のパラメータ設定に基づいて自動的に使用説明を生成できるはずです.ここでは使用していません.
var usage=new StrigBuider()
usage.Apendline(「OpeningBook 1.0」)
usage.Apendline(「-d PgnDir[-s MaxStep=30」)
return usage.ToString()
}
)
5)メインプログラムMainで使用する
var options=new Options()
ICommandline Parser=new CommundLine Parser();
if(parser.Parsseargments(args,options)
{
string pgnDir=options.PgnDir;
int maxStep=options.MaxStep;
//パラメータを取り出しました.自由に使ってもいいです.
//本例ではパラメータが簡単で、やや役不足です.
)
else {
Consolie.Writeline(options.GetUsage);
)
最近のcommandineのバージョンが少し変わりました.また1.7.1.2バージョンのリードを使ってテストしました.現在の書き方はこうです.
public class Options
{
// , , , ,
// -f
[Option('f', "file", Required = true, HelpText = "Segy Filename.")]
public string SegyFile { get; set; }
// -s
[Option('s', "samples", DefaultValue = 15, HelpText = "keep these samples.")]
public int NewSamples { get; set; }
// -r
[Option('r', "traces", DefaultValue = 1000, HelpText = "keep these traces.")]
public int NewTraces { get; set; }
[ParserState]
public IParserState LastParserState { get; set; }
[HelpOption]
public string GetUsage()
{
return HelpText.AutoBuild(this,
(HelpText current) => HelpText.DefaultParsingErrorsHandler(this, current));
}
}
# :
var options = new Options();
if (CommandLine.Parser.Default.ParseArguments(args, options))
{
string segyfile = options.SegyFile;
int newSamples = options.NewSamples;
int newTraces = options.NewTraces;
#
}