最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2013年11月25日 09:58:32   作者:  
經(jīng)常需要開發(fā)一下小工具,之前都是自己解析命令行參數(shù),接觸過動態(tài)語言社區(qū)以后,發(fā)現(xiàn)命令行解析有特定的模式和框架可以利用,本文介紹一個.NET 平臺的類庫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);
            }
        }
    }
}



相關(guān)文章

  • asp.net INI文件讀寫類

    asp.net INI文件讀寫類

    INI文件讀寫類實現(xiàn)代碼。
    2009-09-09
  • VS2008無法直接查看STL值的解決方法

    VS2008無法直接查看STL值的解決方法

    這篇文章主要為大家詳細介紹了VS2008無法直接查看STL值的解決方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • 如何在asp.net中使用FreeTextBox控件

    如何在asp.net中使用FreeTextBox控件

    最近這段時間一直在看如何使用FreeTextBox這個網(wǎng)頁文本編輯器。網(wǎng)上找了很多但是寫的也不是很詳細。下面我以FreeTextBox-3.1.6為例介紹如何使用這個控件,并且給出實例
    2013-09-09
  • Asp.net core利用dynamic簡化數(shù)據(jù)庫訪問

    Asp.net core利用dynamic簡化數(shù)據(jù)庫訪問

    這篇文章介紹了Asp.net core利用dynamic簡化數(shù)據(jù)庫訪問的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-07-07
  • MVC頁面之間參數(shù)傳遞解析

    MVC頁面之間參數(shù)傳遞解析

    這篇文章主要為大家詳細介紹了MVC頁面之間參數(shù)傳遞方法,分享了MVC頁面之間傳值的兩種方式,一是Html.RenderPartial方式,其次是Html.RenderAction 方式,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • 給自定義Web控件添加事件(前后臺代碼)

    給自定義Web控件添加事件(前后臺代碼)

    給自定義控件(Web Control)添加事件具體前后臺代碼如下,感興趣的朋友可以參考下哈
    2013-06-06
  • google suggest 下拉菜單實現(xiàn)代碼(asp.net版本)

    google suggest 下拉菜單實現(xiàn)代碼(asp.net版本)

    原來發(fā)表過,是asp版本的,但是不支持上下鍵,現(xiàn)在后臺處理程序用.net寫的。代碼進行部分優(yōu)化。
    2009-07-07
  • 使用.NET8構(gòu)建一個高效的時間日期幫助類

    使用.NET8構(gòu)建一個高效的時間日期幫助類

    在現(xiàn)代Web應(yīng)用程序中,處理日期和時間是一個常見的需求,本文將為大家介紹如何使用ASP.NET?Core和C#構(gòu)建一個高效的時間日期幫助類,有需要的可以參考下
    2025-01-01
  • jquery repeater 模仿 Google 展開頁面預覽子視圖

    jquery repeater 模仿 Google 展開頁面預覽子視圖

    節(jié)后的這一周, 希望大家能挺住, hehe, 這兩天給大家準備一個 Repeater 子視圖的例子, 模擬了 Google 搜索結(jié)果后的頁面的預覽, 其實也只是顯示了一段問題
    2011-10-10
  • asp.net基于替換模版頁的形式生成靜態(tài)頁的方法

    asp.net基于替換模版頁的形式生成靜態(tài)頁的方法

    這篇文章主要介紹了asp.net基于替換模版頁的形式生成靜態(tài)頁的方法,涉及asp.net模板的設(shè)置、變量替換、配置文件設(shè)置與讀取、以及文件夾與靜態(tài)文件的創(chuàng)建等技巧,需要的朋友可以參考下
    2016-07-07

最新評論

涟水县| 辉县市| 泾源县| 当雄县| 鄂温| 万盛区| 吉木萨尔县| 开封市| 略阳县| 芜湖县| 绥棱县| 赞皇县| 资中县| 山东省| 墨脱县| 都江堰市| 浮山县| 五寨县| 宜城市| 兴海县| 肃南| 尼木县| 长兴县| 潼南县| 阿巴嘎旗| 休宁县| 曲周县| 三亚市| 东源县| 易门县| 临夏县| 南平市| 雅安市| 太仆寺旗| 蒙阴县| 宕昌县| 略阳县| 嘉义县| 永康市| 新沂市| 昆山市|