您的位置 首页 > 清洁清洗

commandline,CommandLine

老铁们,大家好,相信还有很多朋友对于commandline和CommandLine的相关问题不太懂,没关系,今天就由我来为大家分享分享commandline以及CommandLine的问题,文章篇幅可能偏长,希望可以帮助到大家,下面一起来看看吧!

记得之前出过几篇.nettool工具的文章,当时的做法是所有工具的语法分析全部自己解释,自己执行,语法的解释占了大部分时间,反而工具的功能被弱化了。

其实微软有一个CommandLine框架在缓慢的发展着,至今都没有正式发布,那就是System.CommandLine。可以通过NuGet来引用System.CommandLine,它的github地址是https://github.com/dotnet/command-line-api。它的学习文档可参考https://docs.microsoft.com/zh-cn/dotnet/standard/commandline/。按照微软的建议,这个库还在发展中,有可能有较大的改变,所以不建议生产。但这些不耽误我们学习理解他的思路。

先看一小段代码,开始对CommandLine命令的认识

//根命令\nvarrootCommand=newRootCommand("这是一个命令行工具:旦猫");\nrootCommand.SetHandler(()=>\n{\nConsole.WriteLine("欢迎使用《旦猫》");\n});\n//字命令,可以添加到根命令下面\nvarsub1Command=newCommand("show","显示一些信息");\nrootCommand.Add(sub1Command);\nsub1Command.SetHandler(()=>\n{\nConsole.WriteLine("这是《旦猫》的show命令");\n});\n//开始执行命令\nawaitrootCommand.InvokeAsync(args);

可以通过右键项目文件,“通过终端打开”,在终端上输入dotnetrun命令来测试自己的命令行工具。

这里有根命令,并设置了命令执行的内容是控制台上输出欢迎语。

还有一个子命令show,同样输出不同的欢迎语。

如果输入不存在的命令,会有帮助信息。

并且自带了版本和帮助,帮助是需要自定义的,版本就简单了,如果项目信息是这样的

<ProjectSdk="Microsoft.NET.Sdk">\n\n\n<PropertyGroup>\n<OutputType>Exe</OutputType>\n<TargetFramework>net7.0</TargetFramework>\n<ImplicitUsings>enable</ImplicitUsings>\n<Nullable>enable</Nullable>\n<Version>1.0.0.2</Version>\n</PropertyGroup>\n<ItemGroup>\n<PackageReferenceInclude="System.CommandLine"Version="2.0.0-beta3.22114.1"/>\n</ItemGroup>\n</Project>

结果会自动提取版本号过来,为我们节省了这块一发的时间

关于System.CommandLine的介绍,后篇分享。

关于commandline,CommandLine的介绍到此结束,希望对大家有所帮助。

本站涵盖的内容、图片、视频等数据,部分未能与原作者取得联系。若涉及版权问题,请及时通知我们并提供相关证明材料,我们将及时予以删除!谢谢大家的理解与支持!

Copyright © 2023