Exe的命令选项

时间:2014-04-22 12:03:39

标签: c# .net command-line

我有一个用C sharp(.net)编写的控制台应用程序,它从命令提示符获取一些命令行参数。 现在基于给应用程序的选项它将执行一些操作。 像吼叫一样。

> TestExe.exe Option1 (it will perform action1)
> TestExe.exe Option2 (it will perform action2)
> TestExe.exe Option3 (it will perform action3)

现在我想要的是当用户输入应用程序名称并按Tab键时,用户应该获得所有选项。这将使应用程序用户友好,而不是记住选项。

任何人都可以给我一些方向吗?

3 个答案:

答案 0 :(得分:2)

你要求的东西是不可能的。

相反,有四个可执行文件,其中一个是您在上面描述的程序。然后,您有另外三个,每个都代表三个选项之一(三个批处理文件也可以工作,并且可能更容易创建/维护)。其他三个只使用适当的选项执行第一个。

现在,由于你有四个真实文件,使用tab的命令完成将起作用 - 除了完成一个参数(再次,不可能),shell将完成命令本身(一个真实的文件)。

答案 1 :(得分:0)

我认为常见的直接解决方案是为'添加支持?'和'帮助'参数,所以当用户不知道他应该为所需的动作提供哪个参数时,他只需键入TestExe.exe /?或TestExe.exe / help并获取列表。 如果用户在没有参数的情况下运行程序,那么一个好的做法也是显示相同的图例。

答案 2 :(得分:0)

您可以为您的exe创建一个PowerShell包装器,它或多或少会做您想要的。

[CmdletBinding()]
param(
    [Parameter()]
    [ValidateSet('Option1','Option2','Option3')]
    [string]$Option
)

TestExe.exe $Option

如果您将该脚本保存为TestScript.ps1,则可以在PowerShell提示符下键入TestScript -Option,然后按Tab键查看这三个选项。

(您可以将脚本中的Option重命名为您想要的任何内容。)