问题标签 [command-line-parser]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
161 浏览

c# - 无法使用 commandlineparser 解析简单的命令行

我必须解析一个强加的命令行,它将单/双破折号 args、args 与= 作为分隔符等混合在一起(不是很合适....)

命令行就像myexe.exe -Url=https://blabla.com/ --TestValue=val1 -monoapp -Ctx "default ctx" Open -Test2=CO0ZJP6f-ca

我正在尝试使用commandlineparser来做到这一点。(我想它能够做到这一点,对吧?)

所以首先我试图解析第一个参数(myexe.exe -Url=https://blabla.com/)。

使用该代码,我有 2 个错误CommandLine.MissingRequiredOptionErrorCommandLine.UnknownOptionError.

MissingRequiredOptionError因为找不到 Url 参数而产生)

所以你知道我的错误在哪里吗?

在此先感谢您的帮助 ;)

0 投票
1 回答
195 浏览

c# - 解析命令行参数并执行方法

我有一个控制台应用程序,将几十个参数作为输入。我正在使用 commandlineparser 来帮助自己,并且我在为属性设置值时没有问题。

顺便说一句,我也有很多方法需要回忆。
我需要调用的方法将 0 到 7 之间的任意数量的参数作为输入;有些方法是无参数的,大多数方法至少需要 3 个参数作为输入。

寻找最简单情况的解决方案(无参数方法)我想出了这个解决方案:我引入了一个名为IsExecuteOperation的新布尔属性,我设置了这个属性,让 commandlineparser 完成它的工作,然后检查值并最终调用这样的方法:

这看起来是个好主意,所以我采用了所有其他无参数方法。
无参数方法有 7 个,所以我还有7 个选项要处理,加上检查这个标志和调用方法的额外代码。

我开始处理以输入 1 参数(2 种方法)为输入的方法。

第一个方法将一个数字作为输入:这会产生 2 个新属性(1 个用于方法参数 + 1 个用于指示是否执行方法的属性)+ 用于检查和执行方法本身的附加代码。

第二个单参数方法出现了问题:它将一个对象作为输入,该对象在内部定义了至少 9 个属性,我绝对需要设置这些属性才能正确执行该方法。

好吧,我也可以介绍这 9 个属性,但此时我才意识到,对我的所有方法(50ish)应用相同的方法并引入数百个属性只是为了调用这些方法,这在技术上是可行的,但不切实际且混乱。

我的问题..我的方法正确吗?有没有更好的策略来解决这个问题? 有没有办法直接调用方法?

谢谢你。

0 投票
0 回答
156 浏览

c# - CommandLineParser:获取互斥选项集的名称

使用CommandLineParser我可以定义一组这样的互斥选项(取自wiki):

现在我可以像这样解析我的应用程序(.Dump()来自 LinqPad)

WithParsed并且会使用以下参数得到一个肯定的结果 ( ):

并且会得到一个错误(WithNotParsed):

但是:有什么办法可以知道使用了哪一套?

那么获得web第一次调用的价值ftp和第二次调用的价值?或者通过使用接口和/或派生类获得类型化的结果,比如WebOptionsand FtpOptions

使用不同的类,我可以ParseArguments多次调用,直到它成功,但这并不是很好。

我能找到的所有示例总是试图通过测试哪些值已定义而哪些未定义来确定当前集。

有什么我想念的吗?

有什么选择吗?

0 投票
1 回答
387 浏览

c# - CommandLineParser - 如果没有给出开关,则显示 --help 结果

使用CommandLineParser NuGet,当我在没有参数的情况下运行我的应用程序时,是否可以强制显示 --help 结果输出,就像我要运行我的应用程序一样...

目前,当我运行我的应用程序时,当我未指定任何选项时,它不会显示帮助输出。它只是结束应用程序。我有许多不同的选项/标志/参数可以使用。他们都不应该被自己强迫,但我至少需要一个人来使用或提供帮助。

我目前的实现...

0 投票
1 回答
155 浏览

c# - CommandLineParser - 多次使用相同的开关/标志

当我使用这样的选项运行我的应用程序时,使用 CommandLineParser NuGet。

我怎样才能多次使用该选项?例如,如果我想传入两个文件夹...

  1. “c:\我的伟大之路”
  2. “c:\我的另一条伟大的道路”

目前,我将它用于给定的单个路径......

0 投票
1 回答
378 浏览

c# - 命令行解析器解析值即使未指定?

我已经开始使用这个https://github.com/commandlineparser/commandline 将解析的输入参数传递给我的应用程序。

我的问题是不需要传递的输入参数,这意味着您可以在不指定它们的情况下启动应用程序。

到目前为止,我已经定义了我的命令行选项

我主要是这样解析它们的

我想使用parsedfunc:它以防它被指定,notParsedFunc: 以防它没有被指定。

但这总是会触发parsedFuncand 因为两个参数的值都是null,所以我的内部方法失败了?

我也尝试将选项更改为不需要,然后在控制台窗口中引发错误,这些参数尚未指定,但会触发正确的方法。

0 投票
0 回答
92 浏览

c# - 为什么我得到“非泛型方法 Parser.ParseArguments(string[], object) 不能与类型参数一起使用”

我在 C# 的项目中实现命令行解析器

https://github.com/commandlineparser/commandline

我正在尝试创建一个命令行工具,它将为数据库连接提供参数

  1. 服务器地址
  2. 数据库目录
  3. 用户名(如果未集成)
  4. 密码

我创建了一个具有选项的 Options.cs 类

但是当我试图解析我的 Main 方法中的选项时......

(“.ParseArgument”下的红色之字形线,当我将鼠标悬停在它上面时,我得到了这些)->

谁能告诉这里出了什么问题...我按照上面提到的链接进行操作,应该不那么难。

0 投票
0 回答
216 浏览

c# - 具有多种命令类型的命令行解析器

我正在.NET Core 5 中创建一个控制台应用程序,它知道一组命令。应用程序的名称是Strict.exe。这些是我需要解析的命令。

要解析我使用 CommandLineParser 库的命令 - https://github.com/commandlineparser/commandline。现在的问题是我的一些命令是上下文感知的。就像第一个命令load mytext

因此,如果文本文件在同一目录中,则可以

如果它在不同的目录中,命令可以是

另一个问题是 Stich 命令。它可以在“stich”之后接受任意数量的任意值。喜欢

另一种情况是命令验证。如果用户正在使用join命令。它应该后跟一个标志,例如 ' -l' 或 ' -r' 然后是string. 我该如何执行它。

我能够使用该库解析普通命令,但我无法将它用于我的用例。如何创建 Options 类来应对上述需求。

我当前的实现只能解析第一个命令

0 投票
0 回答
60 浏览

c# - 如果我没有任何参数,带有 C# 的 CommandLineParser 不会显示我的方法

此代码使用 CommandLineParser 库有效。但是,只要不设置参数,就无法得到DisplayHelp方法返回的结果。我的代码在我有参数时有效,但在没有参数时无效。这是我的代码:

  1. 使用有效参数 Program.options 使用从命令行 args => OK 提取的参数进行初始化
  2. 如果命令行参数无效,则会显示帮助。=> 好的
  3. 没有命令行参数,不显示帮助=>这不是我想要的。

谢谢您的帮助。

0 投票
0 回答
76 浏览

c++ - 在 main() 之外解析命令行参数

我主要介绍了一个新的命令行选项解析器:

我需要使用这个新变量(systemen)作为另一个 cpp 文件中向量的索引:

我很感激任何帮助!