如何让程序在命令行接受glob(通配符)?

时间:2013-06-25 09:20:18

标签: c# .net command-line glob

我希望用户能够使用这样的语法运行我的程序(来自Windows cmd)

  • app.exe *.pdf
  • app.exe February/*.pdf March/*.pdf
  • app.exe contracts.pdf

然后,应用程序将为每个相关文件执行业务。在Unix中,这称为globbing,它由shell完成。

如何为Windows C#命令行应用程序实现此目的?

假设语法

void Main(string[] args)
{
    foreach(var file in args.SelectMany(arg => Glob.Expand(arg)))
    {
        Process(file)
    }
}

1 个答案:

答案 0 :(得分:0)

最简单的方法是将命令行参数转换为正则表达式。有关如何将命令行参数转换为正则表达式的示例,请参阅glob pattern matching in .NET