NetCore控制台实现自定义CommandLine功能
命令行科普:
例如输入: trans 123 456 789 -r 123 -r 789
上面例子中:trans是Command,123 456 789是CommandArgument,-r之后的都是CommandOption.注意:命令行的格式是固定的
Command是必须的,CommandArgument和CommandOption都是可选的
只有设置了CommandArgument的multipleValues为true后,CommandArgument才可以接受多个参数,单个参数和多个参数可以通过CommandArgument.Values获取
CommandOption设置了MultipleValue之后输入格式必须为-option optionvalue -option optionvalue...
NetCore插件:McMaster.Extensions.CommandLineUtils,项目源码:https://github.com/natemcmaster/CommandLineUtils
1、新建一个控制台项目
2、管理Nuget包。添加McMaster.Extensions.CommandLineUtils的引用
3、写代码
1 using System; 2 using System.Threading.Tasks; 3 4 namespace Tree 5 { 6 class Program 7 { 8 static void Main(string[] args) 9 { 10 CommandLine line = new CommandLine(); 11 line.Run(args); 12 } 13 } 14 }
View Code
1 using McMaster.Extensions.CommandLineUtils; 2 3 namespace Tree 4 { 5 public class CommandLine 6 { 7 public void Run(string[] args) 8 { 9 CommandLineApplication app = new CommandLineApplication(false); 10 app.HelpOption("-?|-h|--help"); 11 app.OnExecute(() => 12 { 13 app.ShowHelp(); 14 return 0; 15 }); 16 app.Command("trans", command => 17 { 18 //var args1 = new[] { "Arg1", "arg with space", "args ' with \" quotes" }; 19 //Process.Start("echo", ArgumentEscaper.EscapeAndConcatenate(args1)); 20 string password = Prompt.GetPassword("please input your password: "); 21 //Process.Start(DotNetExe.FullPathOrDefault(), "run"); 22 CommandArgument argument = command.Argument("[name]", "", multipleValues: true); 23 CommandOption option = command.Option("-t", "this is a template", CommandOptionType.NoValue); 24 command.OnExecute(() => 25 { 26 if (option.Value() == "-t") 27 { 28 bool isRun = Prompt.GetYesNo("confirm your transaction, do your want to continue:", false); 29 if (!isRun) 30 { 31 return; 32 } 33 command.Out.WriteLine($"密码是{password}, 参数是:{argument}"); 34 return; 35 } 36 }); 37 }); 38 app.Execute(args); 39 } 40 } 41 }
View Code
4、结果
转载于:https://www.cnblogs.com/wangyulong/p/9296164.html
NetCore控制台实现自定义CommandLine功能相关推荐
- 微信自定义菜单java_使用Java语言开发微信公众平台(八)——自定义菜单功能
随着上一篇文章的结束,我们已经实现了所有消息的类型的回复功能.今天,我们来学习更加高大上,也更加重要的自定义菜单功能. 一.了解自定义菜单 自定义菜单是微信公众平台最常用也是最重要的功能之一.根据微信 ...
- 通过案例学功能 自定义监控功能初探
IT系统千差万别,即便是通用的Java.PHP也会由于版本的差异,配置和接口存在大同而小异,但往往就是这些小差别,会对系统的稳定性和性能产生大影响.市面上的IT监控产品都只能对标准应用的流行版本进行准 ...
- php创建菜单_php实现微信公众号创建自定义菜单功能的实例代码
目的 创建自定义菜单,实现菜单事件. 首先获取Access_Token 接口: 我用的是测试号,修改APPID和APPSECRET,然后浏览器访问上面这个Url即可生成Access_Token 然后配 ...
- 升级IOS8游戏上传自定义头像功能失效的问题
为了支持arm64,之前已经折腾了很久,昨晚打包准备提交苹果审核时,测试那边的同事反馈说游戏上传自定义头像功能不可用了. 游戏上传自定义功能的简介:卡牌游戏最初是<比武招亲>中有一个充VI ...
- Javascript自定义事件功能与用法实例分析
原文地址:https://www.jb51.net/article/127776.htm 本文实例讲述了javascript自定义事件功能与用法.分享给大家供大家参考,具体如下: 概述 自定义事件很难 ...
- 小程序“自定义关键词”功能的常见问答
我们知道小程序可以通过线下扫码.公众号.好友分享.长按小程序码.搜索小程序名称来找到,现在又多了一个新方式--小程序后台新增自定义关键词功能:已发布小程序的开发者,可提交最多10个与小程序业务相关的关 ...
- java自定义迭代器作用_Java实现的自定义迭代器功能示例
本文实例讲述了Java实现的自定义迭代器功能.分享给大家供大家参考,具体如下: 编写自己的Iterator,实现Iterator接口,这里多说一句,实现Iterable后,可以用"forea ...
- python 列表比较不同_使用Python中的自定义比较功能对列表进行排序
由于OP要求使用自定义比较功能(这也是导致我提出这个问题的原因),因此我想在这里给出可靠的答案: 通常,您要使用内置的return fitness(item2) - fitness(item1)函数, ...
- mui 图片预览(自定义)功能 - 案例篇
mui 图片预览(自定义)功能 - 案例篇 实现目标: 点击图片,弹出层遮盖,并放大显示刚才点击的图片: 图片对应的标题,也一并显示. 效果截图: 重要提示Tips: 使用前,务必设置图片的alt属性 ...
- 如何使用小程序自定义组件功能
标签: 小程序 component 需求 小程序开发时通过自定义组件将频繁使用的模块抽取出来,简化代码; 实现难点 小程序文档相关的说明太过于详细,以至于不能快速上手使用,因此这里从顽意小程序中拿出一 ...
最新文章
- Linux/CentOS优化配置 汇总
- java学习笔记(十)----String类和StringBuffer类
- Linux操作系统下如何编译安装源码包软件
- GAN生成对抗网络-text to image原理与基本实现-文字转图像-11
- 系统架构师学习笔记-操作系统(二)
- jsp 动态添加一行数据_大数据从入门到深入:JavaEE 之 动态网页开发基础 JSP的数据交互(3)...
- 《移动App测试的22条军规》—App测试综合案例分析23.5节测试微信App的用户体验...
- 【精选】Java高频面试题278道附答案,通关中大型互联网企业工程师必备
- 计算机408考研专业课思维导图(计算机组原理、数据结构、操作系统、计算机网络)
- 16QAM调制解调步骤
- ~《概率论》~联合分布与边际分布
- c语言程序设计数组说课,C语言程序设计说课PPT课件(超好)
- 数据组织与存储(五)
- go包base64解密
- 利用adb 命令回到手机端某个app的页面
- linux命令 sh -s,shell脚本中 if 判断时候-s是什么意思?
- 制定标准的重要性和意义_标准的重要性
- Java整合微信商家转账到个人开通流程
- java连接数据库,jdbc四要素,jdbc六大步
- js和cs的值相互传递和函数的相互调用
热门文章
- Java内存与垃圾回收调优
- 1.1.6版本Druid连接MSSQLServer 2008 R2报错The query timeout value -1 is not valid. #2210
- DelegatingFilterProxy详解
- 孤岛能源安卓游戏源码
- 一种全新的VDI桌面虚拟化方案(X9BYOD)
- 网站加载时间测试、网页元素加载性能及网站状态监控工具集合介绍
- 使用内部类或者外部类
- mysql 主主_MySQL双主(主主)架构
- datatable中某一列最小值_操作dom获取datatable中的某一行的某一列的数据
- visibility和hidden