Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在C#中创建包含文件路径的命令行_C#_Command Line Arguments - Fatal编程技术网

在C#中创建包含文件路径的命令行

在C#中创建包含文件路径的命令行,c#,command-line-arguments,C#,Command Line Arguments,我正在尝试创建一个项目,该项目使用命令行参数接受一个配置文件和两个比较文件,并包含这些文件的路径。我的构造方式是否与传递任何命令行参数的方式相同?抱歉,我是新手,所以我不确定在尝试传递文件时是否存在异常 我能举个例子说明如何做到这一点吗?这是一张我被问到的方向图 接受以下命令行参数: 配置文件(带路径)(如下所述) 比较文件1(带路径) 比较文件2(带路径) 请看一看参数的文档 假设这是您的主要功能,并且您希望接受3个参数: static int Main(string[] args) {

我正在尝试创建一个项目,该项目使用命令行参数接受一个配置文件和两个比较文件,并包含这些文件的路径。我的构造方式是否与传递任何命令行参数的方式相同?抱歉,我是新手,所以我不确定在尝试传递文件时是否存在异常

我能举个例子说明如何做到这一点吗?这是一张我被问到的方向图

接受以下命令行参数:

  • 配置文件(带路径)(如下所述)
  • 比较文件1(带路径)
  • 比较文件2(带路径)

  • 请看一看参数的文档

    假设这是您的主要功能,并且您希望接受3个参数:

    static int Main(string[] args)
    {
        // check the length of args for validation.
        // args[0] -> Configuration file
        // args[1] -> Comparison File 1
        // args[2] -> Comparison File 2
        ..... DO SOMETHING...
        return 0;
    }
    
    用法(从命令行或调试器):


    请看一看参数的文档

    假设这是您的主要功能,并且您希望接受3个参数:

    static int Main(string[] args)
    {
        // check the length of args for validation.
        // args[0] -> Configuration file
        // args[1] -> Comparison File 1
        // args[2] -> Comparison File 2
        ..... DO SOMETHING...
        return 0;
    }
    
    用法(从命令行或调试器):


    因为我真的很喜欢这个nuget(没有关联,只是一个粉丝)。下面是一个使用 首先使用
    dotnet new consol TestConsolUtils
    添加一个新项目,然后添加nuget
    dotnet add包McMaster.Extensions.CommandLineUtils
    ,然后将此代码复制到程序类

    using McMaster.Extensions.CommandLineUtils;
    using System;
    
    namespace ConsolUtilsTest
    {
        class Program
        {
            public static int Main(string[] args)
            => CommandLineApplication.Execute<Program>(args);
    
            [Argument(0, Description = "Configuration file")]
            [FileExists]
            public string ConfigurationFile { get; }
    
            [Argument(1, Description = "Comparison file 1")]
            [FileExists]
            public string ComparisonFile1 { get; }
    
            [Argument(2, Description = "Comparison File 2")]
            [FileExists]
            public string ComparisonFile2 { get; }
    
            private void OnExecute()
            {
                Console.WriteLine(ConfigurationFile);
                Console.WriteLine(ComparisonFile1);
                Console.WriteLine(ComparisonFile2);
            }
        }
    }
    
    使用McMaster.Extensions.CommandLineUtils;
    使用制度;
    名称空间控制台测试
    {
    班级计划
    {
    公共静态int Main(字符串[]args)
    =>CommandLineApplication.Execute(args);
    [参数(0,Description=“配置文件”)]
    [文件存在]
    公共字符串配置文件{get;}
    [参数(1,Description=“比较文件1”)]
    [文件存在]
    公共字符串ComparisonFile1{get;}
    [参数(2,Description=“比较文件2”)]
    [文件存在]
    公共字符串ComparisonFile2{get;}
    私有void OnExecute()
    {
    Console.WriteLine(配置文件);
    Console.WriteLine(ComparisonFile1);
    控制台写入线(ComparisonFile2);
    }
    }
    }
    
    进行
    dotnet构建
    转到最有可能在Debug\netcoreapp2.2中生成的dll文件夹\ 创建一个伪文件a.json这是必需的,因为实用程序将检查该文件是否存在。 用dotnet命令运行它
    dotnet TestConsolUtils.dll A.json A.json A.json

    你还可以用这个工具做更多的事情。我看一下文档。

    因为我真的很喜欢这个nuget(没有关联,只是一个粉丝)。下面是一个使用 首先使用
    dotnet new consol TestConsolUtils
    添加一个新项目,然后添加nuget
    dotnet add包McMaster.Extensions.CommandLineUtils
    ,然后将此代码复制到程序类

    using McMaster.Extensions.CommandLineUtils;
    using System;
    
    namespace ConsolUtilsTest
    {
        class Program
        {
            public static int Main(string[] args)
            => CommandLineApplication.Execute<Program>(args);
    
            [Argument(0, Description = "Configuration file")]
            [FileExists]
            public string ConfigurationFile { get; }
    
            [Argument(1, Description = "Comparison file 1")]
            [FileExists]
            public string ComparisonFile1 { get; }
    
            [Argument(2, Description = "Comparison File 2")]
            [FileExists]
            public string ComparisonFile2 { get; }
    
            private void OnExecute()
            {
                Console.WriteLine(ConfigurationFile);
                Console.WriteLine(ComparisonFile1);
                Console.WriteLine(ComparisonFile2);
            }
        }
    }
    
    使用McMaster.Extensions.CommandLineUtils;
    使用制度;
    名称空间控制台测试
    {
    班级计划
    {
    公共静态int Main(字符串[]args)
    =>CommandLineApplication.Execute(args);
    [参数(0,Description=“配置文件”)]
    [文件存在]
    公共字符串配置文件{get;}
    [参数(1,Description=“比较文件1”)]
    [文件存在]
    公共字符串ComparisonFile1{get;}
    [参数(2,Description=“比较文件2”)]
    [文件存在]
    公共字符串ComparisonFile2{get;}
    私有void OnExecute()
    {
    Console.WriteLine(配置文件);
    Console.WriteLine(ComparisonFile1);
    控制台写入线(ComparisonFile2);
    }
    }
    }
    
    进行
    dotnet构建
    转到最有可能在Debug\netcoreapp2.2中生成的dll文件夹\ 创建一个伪文件a.json这是必需的,因为实用程序将检查该文件是否存在。 用dotnet命令运行它
    dotnet TestConsolUtils.dll A.json A.json A.json

    使用此工具,您可以做更多的事情。请查看文档。

    您要传递的是文件的名称(可能还有路径),而不是文件本身。您的输入只能是字符串。程序将获取这些值,并发出命令打开文件并读取它们(或您想对它们执行的任何操作),但不确定这是否是一种过度使用,但这里有一个很好的nuget来帮助您传递的是文件的名称(可能还有路径),而不是文件本身。您的输入只能是字符串。程序将获取这些值并发出命令来打开文件并读取它们(或您想对它们执行的任何操作),不确定这是否是一种过度使用,但这里有一个很好的nuget来帮助您