0

我希望用户能够使用这样的语法运行我的程序(从 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)
    }
}
4

2 回答 2

1

看看 NuGet 包 Microsoft.Extensions.FileSystemGlobbing

https://docs.microsoft.com/en-us/dotnet/api/microsoft.extensions.filesystemglobbing.matcher

于 2021-09-29T08:09:56.353 回答
0

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

于 2013-06-25T09:22:08.653 回答