.NET命令行解析器示例程序(命令行选项功能)
2013-11-25 00:00
706 查看
示例需求
拷贝文件,如:CopyFiles -s "E:\Framework\Tenoner - 副本 (2)" -p "*.csproj" -t "E:\Framework\Tenoner - 副本 (2)\Bak",可以支持:深度拷贝、拷贝符合指定模式的文件、是否覆盖等选项。
使用 CommandLineParser
CommandLineParser 是一个轻量级的工具,使用非常简答,官方也有教程。
选项类
工具类
拷贝文件,如:CopyFiles -s "E:\Framework\Tenoner - 副本 (2)" -p "*.csproj" -t "E:\Framework\Tenoner - 副本 (2)\Bak",可以支持:深度拷贝、拷贝符合指定模式的文件、是否覆盖等选项。
使用 CommandLineParser
CommandLineParser 是一个轻量级的工具,使用非常简答,官方也有教程。
选项类
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using CommandLine; using CommandLine.Text; namespace CopyFiles { class Options { [Option( 's', "source", Required = true, HelpText = "源目录。")] public string SourcePath { get; set; } [Option( 'p', "pattern", Required = true, HelpText = "文件模式。")] public string SearchPattern { get; set; } [Option( 't', "target", Required = true, HelpText = "目标目录。")] public string TargetPath { get; set; } [Option('a', "all", DefaultValue = true, HelpText = "是否包含所有目录?")] public bool AllDirectories { get; set; } [Option('o', "overwrite", DefaultValue = true, HelpText = "是否覆盖所有文件?")] public bool Overwrite { get; set; } [Option('v', "verbose", DefaultValue = true, HelpText = "是否打印消息?")] public bool Verbose { get; set; } [HelpOption] public string GetUsage() { return HelpText.AutoBuild(this); } public void WriteLine(string format, params object[] args) { if (this.Verbose) { Console.WriteLine(string.Format(format, args)); } } } }
工具类
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using CommandLine; using Happy.Utils; namespace CopyFiles { class Program { static void Main(string[] args) { var options = new Options(); if (Parser.Default.ParseArguments(args, options)) { FileUtil.Copy( options.SourcePath, options.SearchPattern, options.TargetPath, (sourceFile, targetFile) => { options.WriteLine("拷贝文件:{0} 到 {1}", sourceFile, targetFile); }, (exceptionInfo) => { options.WriteLine(exceptionInfo.Exception.Message); exceptionInfo.ExceptionHandled = true; }, options.AllDirectories, options.Overwrite); } } } }
相关文章推荐
- .NET命令行解析器示例程序(命令行选项功能)
- HelloWorld.c小程序、实现dos命令行功能、打开文件操作(2种方式)
- Python编写带选项的命令行程序
- 怎样给没有源代码的.net程序添加修改功能
- 如何启动一个程序一附加命令行选项启动(创建进程以命令行附加方式 配置 其他启动项)
- Python实现TCP协议下的端口映射功能的脚本程序示例
- 使用VS2010代码分析功能增强ASP.NET应“.NET研究”用程序安全
- 示例:在MFC程序中集成.Net中的控件
- php+javascript实现的动态显示服务器运行程序进度条功能示例
- 命令行程序选项解析函数—getopt
- argparse — 命令行选项、参数和子命令的解析器
- WinDBG调试.NET程序示例
- AngularJS实现的省市二级联动功能示例【可对选项实现增删】
- 怎样给没有源代码的.net程序添加修改功能
- SAP 自带程序(示例及功能), 持续更新...
- 示例:在MFC程序中集成.Net中的控件
- 安装程序命令行选项和属性 - Setup.exe及*.MSI
- 微信小程序实现获取自己所处位置的经纬度坐标功能示例
- java下运行windows命令行程序(批处理文件)示例
- Asp.net Mvc Framework在.net 2.0/IIS6下运行,程序示例