CommandLine.Parser 是否支持一个选项多次出现?
Does CommandLine.Parser support multiple occurences of an option?
如何使用 CommandLine.Parser 支持此功能?
program.exe -s file1 -t file2 -t file3
Yes。这是可能的 IEnumerable
:
class Program
{
static void Main(string[] args)
{
args = new[] { "-s", "sourceFile", "-t", "targetFile1", "targetFile2" };
Parser.Default.ParseArguments<MyOptions>(args).WithParsed(o =>
{
foreach (var target in o.Targets)
{
Console.WriteLine(target);
}
});
Console.ReadKey();
}
}
internal class MyOptions
{
[Option('s')]
public string Source { get; set; }
[Option('t')]
public IEnumerable<string> Targets { get; set; }
}
很棒的是,您甚至可以将 FileInfo
和 DirectoryInfo
与 CommandLine.Option
属性一起使用。
如何使用 CommandLine.Parser 支持此功能?
program.exe -s file1 -t file2 -t file3
Yes。这是可能的 IEnumerable
:
class Program
{
static void Main(string[] args)
{
args = new[] { "-s", "sourceFile", "-t", "targetFile1", "targetFile2" };
Parser.Default.ParseArguments<MyOptions>(args).WithParsed(o =>
{
foreach (var target in o.Targets)
{
Console.WriteLine(target);
}
});
Console.ReadKey();
}
}
internal class MyOptions
{
[Option('s')]
public string Source { get; set; }
[Option('t')]
public IEnumerable<string> Targets { get; set; }
}
很棒的是,您甚至可以将 FileInfo
和 DirectoryInfo
与 CommandLine.Option
属性一起使用。