Exe的命令选项

本文关键字:选项 命令 Exe | 更新日期: 2023-09-27 17:59:16

我有一个用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键时,用户应该获得所有选项。这将使应用程序对用户友好,而不是记住选项。

谁能给我指路吗。。?

Exe的命令选项

你想要的是不可能的。

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

现在,由于您有四个真实的文件,使用tab完成命令将起作用——除了shell将完成命令本身(一个真实的),而不是完成一个参数(这也是不可能的)。

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

你可以为你的exe制作一个PowerShell包装器,它或多或少会做你想要的事情。

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

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

(当然,您可以将脚本中的Option重命名为您想要的任何名称。)