一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語(yǔ)言|JavaScript|易語(yǔ)言|vb.net|

服務(wù)器之家 - 編程語(yǔ)言 - ASP.NET教程 - .NET命令行解析器示例程序(命令行選項(xiàng)功能)

.NET命令行解析器示例程序(命令行選項(xiàng)功能)

2019-11-22 11:55ASP.NET教程網(wǎng) ASP.NET教程

經(jīng)常需要開(kāi)發(fā)一下小工具,之前都是自己解析命令行參數(shù),接觸過(guò)動(dòng)態(tài)語(yǔ)言社區(qū)以后,發(fā)現(xiàn)命令行解析有特定的模式和框架可以利用,本文介紹一個(gè).NET 平臺(tái)的類庫(kù)CommandLineParser

示例需求

拷貝文件,如:CopyFiles -s "E:\Framework\Tenoner - 副本 (2)" -p "*.csproj" -t "E:\Framework\Tenoner - 副本 (2)\Bak",可以支持:深度拷貝、拷貝符合指定模式的文件、是否覆蓋等選項(xiàng)。

使用 CommandLineParser
CommandLineParser 是一個(gè)輕量級(jí)的工具,使用非常簡(jiǎn)答,官方也有教程。

選項(xiàng)類

 

復(fù)制代碼代碼如下:


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 = "目標(biāo)目錄。")]
        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));
            }
        }
    }
}

 

工具類

 

復(fù)制代碼代碼如下:


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命令行解析器示例程序(命令行選項(xiàng)功能)

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产欧美综合一区二区 | 四虎在线永久免费视频网站 | 欧美不卡一区二区三区免 | 女同久久另类99精品国产 | 精品国产一区二区 | 国产欧美综合精品一区二区 | 午夜理论片YY4399影院 | 日本三级做a全过程在线观看 | 亚洲精品一区波多野结衣 | 久久久久久免费高清电影 | 91私密保健女子养生spa | 午夜dj影院在线观看完整版 | 色老板在线视频 | 天天综合色天天综合色sb | 亚洲国产一区二区三区a毛片 | 久久久精品3d动漫一区二区三区 | 亚洲看片lutube在线入口 | 女教师巨大乳孔中文字幕免费 | 欧美专区亚洲 | 四虎永久在线精品国产 | 蜜桃视频在线观看www | 亚洲精品丝袜在线一区波多野结衣 | 国产欧美综合精品一区二区 | 成年人免费在线看的惊悚动作片 | 免费网站看v片在线成人国产系列 | 亚洲欧美精品一区二区 | 女教师的一级毛片 | 精品国产理论在线观看不卡 | jzzjzz视频免费播放 | 亚洲国产精品综合久久一线 | 亚洲bt区 | 日韩av线观看 | 亚洲男gay | 日韩福利一区 | 艾秋麻豆果冻传媒老狼仙踪林 | 拔插拔插8x8x海外华人免费视频 | 色小妹在线 | 欧美亚洲天堂网 | 星空无限传媒xk8027穆娜 | 成人一区二区丝袜美腿 | 青草视频在线观看免费视频 |