title
author
date
createtime
categories
c#命令列解析工具
lindexi
2019-09-02 12:57:37 +0800
2018-2-13 17:23:3 +0800
c#我將告訴大家兩個方法去獲取c#輸入的命令列引數。
第乙個方法是不需要安裝任何的庫,這個方法是效能很高,但是封裝不好。第二個方法是使用 commandlineparser 庫,這個庫提高很好的封裝但是效能會比較差。
第乙個方法:
林選臣大神寫的,他的方法很簡單。
首先複製兩個類到專案
publicclass
commandlineargumentparser
}public
static
commandlineargumentparser
parse(string args)
public
commandlineargument
get(string
argumentname)
public
ienumerable
getenumerator()
}public
bool
has(string
argumentname)
}public
class
commandlineargument
public
commandlineargument
next
return
null;}}
public
commandlineargument
previous
return
null;}}
public
commandlineargument
take()
public
ienumerable
take(int
count)
return
list;
}public
static
implicit
operator
string(commandlineargument
argument)
public
override
string
tostring()
}
複製完成就可以使用,在主函式可以使用下面**進行轉換,下面**的args
就是傳入的引數字串陣列。
vararguments
=commandlineargumentparser.parse(args);
如果需要獲得引數的資訊,可以使用下面**,也就是使用 get 方法傳入乙個指定的值,通過這個值就可以拿到這個值的引數
varf=arguments.get("--lindexi"
).take();
如命令輸入--lindexi doubi
,上面**就可以拿到doubi
,雖然使用這個庫的寫法的封裝不是很好,但是效能很好。下面告訴大家使用另乙個方法,十分容易寫,但是效能比較差。
第二個方法需要使用 nuget 安裝 commandlineparser 庫,可以在控制台輸入下面**安裝
install-package
commandlineparser
然後寫乙個工具類,**是在申龍斌大神部落格 抄的
classoptions
// 新的版本使用的是 char 來作為第乙個字元,也就是需要修改 "d" 為 'd' 字元
// [option('d', "dir", required = true, helptext = "pgn directory to read.")]
// public string pgndir
// 第二個引數-s 也可以使用 --step
[option("s"
, "step"
, defaultvalue
=30, helptext
="the maximum steps in pgn game to process."
)] public
intmaxstep
[helpoption]
public
string
getusage()
}
主程式main裡使用可以使用下面**,這裡的 args 陣列就是主函式傳入函式。下面的**是老版本的寫法
// 老版本的寫法varoptions
=new
options();
if (parser.default.parsearguments(args, options))
else
上面的**是老的版本,現在更新 2.2.0 版本是需要修改**
classoptions
// 第二個引數-s
[option('s', "step"
, helptext
="the maximum steps in pgn game to process."
)] public
intmaxstep
}
原來的 defaultvalue 修改為 default 可以傳入任何型別
在 main 函式需要修改**
commandline.parser.default.parsearguments(args)
.withparsed(options
=>
).withnotparsed(errorlist
=>
);
在 withparsed 就是解析成功的委託,在 withnotparsed 就是解析失敗的
如何使用參見:
quickstart · gsscoder/commandline wiki
參見:安利一款命令列引數
2019 9 2 C 命令列解析工具
title author date createtime categories c 命令列解析工具 lindexi 2019 09 02 12 57 37 0800 2018 2 13 17 23 3 0800 c 我將告訴大家兩個方法去獲取c 輸入的命令列引數。第乙個方法是不需要安裝任何的庫,這個...
C 命令列解析工具
我將告訴大家兩個方法去獲取c 輸入的命令列引數。第乙個方法 林選臣大神寫的,他的方法很簡單。首先複製兩個類到專案 public class commandlineargumentparser public static commandlineargumentparser parse string a...
C 命令列解析工具
我將告訴大家兩個方法去獲取c 輸入的命令列引數。第乙個方法 林選臣大神寫的,他的方法很簡單。首先複製兩個類到專案 public class commandlineargumentparser public static commandlineargumentparser parse string a...