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