我正在尝试创建一个项目,该项目使用命令行参数(包含这些文件的路径)来接受配置文件和2个比较文件。我将以与您传递任何命令行参数相同的方式构造此方法吗?抱歉,我对此并不陌生,所以我不确定在尝试传递文件时是否存在异常。
我可以举个例子吗?这是我被问到的正确方向的图片。
接受以下命令行参数:
答案 0 :(得分:3)
看看Main function自变量的文档
假设这是您的主要功能,并且您想接受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;
}
用法(从命令行或调试器):
SomeProgram.exe "ConfigFilePath" "ComparisonFile1" "ComparisonFile2".
答案 1 :(得分:1)
因为我真的很喜欢这个nuget(没有关联只是一个粉丝)。这是使用CommandLineUtils的示例
首先使用dotnet new consol TestConsolUtils
添加一个新项目,然后添加nuget dotnet add package 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);
}
}
}
做一个dotnet build
转到最有可能在Debug \ netcoreapp2.2 \中构建的dll文件夹
创建一个伪文件A.json,这是必需的,因为实用程序将检查该文件是否存在。
使用dotnet命令运行
dotnet TestConsolUtils.dll A.json A.json A.json
只需查看文档,您就可以使用此工具做更多的事情。