【问题标题】:How to Create Command-Line Commands for a C# Program如何为 C# 程序创建命令行命令
【发布时间】:2019-01-16 20:21:43
【问题描述】:

我想用 C# 做一个命令行文件搜索程序。我希望它有一个可调用的名称,例如“搜索”以及命令行参数,例如“搜索名称”。如何在 C# 中实现这一点? 我想我将不得不创建一个新的命令行命令,但我不知道如何将参数传递给 C# 方法。

【问题讨论】:

  • 有几个很好的 nuget 包用于解析命令行参数。无论如何,您需要更具体地了解您遇到的问题。
  • 我认为我很具体。可调用的名称,可传递的命令。
  • 或者,作为一种现成的替代方案,您可以在“模块”中创建一个(或一组)PowerShell Cmdlet。 Powershell 处理别名、命令完成、智能“流水线”等比 cmd.exe 好得多。
  • 一个示例用法?示例代码? “如何使用命令行参数来做一件未指定的事情”相当广泛。显然您只是在寻找 args 数组,我认为您至少已经做到了这一点。
  • 这还不是全部。我提到了如何使用这些参数执行 cmd/PowerShell 命令。尽管听起来很疯狂,但他们从未真正教会我 public static void Main(String[] args) 的全部含义,而互联网也没有直接教给我。

标签: c# shell command-line


【解决方案1】:

如果 Main 方法有参数 string[] args,则可以访问从控制台传递的参数。或者,可以使用方法System.Environment.GetCommandLineArgs() 访问它。与 C/C++ 不同,这不包括程序的名称。

这是一个关于添加别名的问题:Aliases in Windows command prompt 这将使您能够输入“搜索”而不是 search.exe。

【讨论】:

  • 所以如果我输入别名后跟一个字符串,该字符串将被传递到 args[] 数组中?
  • @EpicNicks 说,如果您在 cmd 中输入“search.exe FileName -a -b”,args 将是 {“FileName”、“-a”、“-b”}。
  • 即将试一试。不知道这甚至是一件事。凉爽的。这是一个数字金星。
【解决方案2】:

对于调试,您可以在项目属性中设置命令行参数。

然后只需访问主事件中的 arg 参数(对于控制台应用程序)。

【讨论】:

    猜你喜欢
    • 2012-12-11
    • 1970-01-01
    • 1970-01-01
    • 2016-01-24
    • 1970-01-01
    • 2020-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多