用于.NET的强大而友好的命令行工具?

Pre*_*ous 7 .net c# vb.net mono command-line

忘记花哨的shmancy web东西.我正在寻找一个好的.NET CLI参数处理实用程序,更喜欢开源代码.这适用于需要强大而友好的命令行参数处理的快速而脏的实用程序.

这些是公用事业,可能需要一天的努力.投入几天编写良好的命令行处理似乎有点过分......但他们确实需要它.

我喜欢在命令行处理程序中使用的功能.我对任何有2个或3个以下的开源项目感到非常兴奋.

  • 一致的语法, posix有一个很好的命令行标准,但不一定是posix.
  • 能够为agruments提供简短的名称.例如"msbuild/t"=="msbuild/target"
  • 支持良好的命令行解析然后不受影响.我想要一些我的代码使用的东西,而不是在我的代码上强加一个模式的东西,例如我不想要回应一个带有事件的arg的存在,那种类型的东西.
  • 关注点的分离是足够好的,它的逻辑可以进行单元测试.
  • 哦 - 要求它从类属性中读取属性(在.NET配置类中)是两件事吗?
  • 我喜欢msbuild中的配置文件覆盖.我可以在构建文件中设置属性,但在命令行上覆盖.
  • 内置"show usage".WSF文件(csript.exe)具有此功能.我不愿意写jscript来获得命令行处理.
  • 不是powershell.我在公司里找不到任何能够支持Powershell语法的人.

PS如果我没有找到这样的东西,我可能会在接下来的几周内在谷歌代码上丢掉一个

PPS如果我可以添加标签,我会标记为"pleasesearchtheinternetforme"

Bev*_*van 7

同样来自codePlex,CommandLine项目似乎符合您的要求.从项目主页复制/粘贴的自由应用程序给出了......

命令行分析器库为CLR应用程序提供了一个简单的编程接口,用于操作命令行输入.此库允许您显示具有良好自定义程度的帮助屏幕.API始终坚持代码无聊的一切.

Command Parser Library支持:

  • 短选项(例如-s)

    • 选项+值/无空格:-sHello
    • 选项+空格+值:-s你好
  • 交换机等短期选项; 没有必要的价值

    • Option + Space + Option + ....... -s -x -y -z
    • 选项+选项+选项+ ...: - -sxyz ...
    • 选项+选项+空间/任意组合:-sx -yz
  • 长选项(例如, - long)

    • 选项+等于+值: - long =你好
    • 选项+空格+价值: - 长你好
  • 组合选项(关于值)

    • 任何1; 2; 3; 4(分隔符是可配置的)

共同特征

两者都接受带空格的值:-s"Hello World!" - 长"你好CLR!"


Raf*_*ira 7

您应该查看Mono.Options(http://www.ndesk.org/Options),因为它更加跨平台友好,并在Mono本身广泛使用.