如何在powershell函数中使用c#switch参数?

ano*_*opb 0 parameters powershell function

我有一个功能

getinfo([string]$subcommand, [string]$argument)
Run Code Online (Sandbox Code Playgroud)

我想做的是让参数值为'-h'或'-help'

getinfo hosts -h
Run Code Online (Sandbox Code Playgroud)

将为子命令'hosts'提供帮助文本.不幸的是,当我指定-h时,我认为它不会将"-h"的值赋给$参数,而是创建一个新参数.

我正在考虑使用switch参数,但我不确定我是否可以在函数中使用它与上面的$ argument一起使用.

这可能吗?

Kei*_*ill 5

稍微退一步,你试图在PowerShell上强制命令范例,这不是我称之为惯用的PowerShell.为什么不用自己的帮助创建几个函数,例如Get-HostInfo,Get-FooInfo等.然后你可以使用PowerShell的内置文档支持,例如:

<#
.SYNOPSIS
   Short description
.DESCRIPTION
   Long description
.PARAMETER Host
    Name of the host.
.EXAMPLE
   Example of how to use this cmdlet
.EXAMPLE
   Another example of how to use this cmdlet
#>
function Get-HostInfo($host) { ... }
Run Code Online (Sandbox Code Playgroud)

这支持PowerShell用户期望的所有方式的帮助:

man Get-HostInfo
man Get-HostInfo -Example
man Get-HostInfo -Parameter Host
Get-HostInfo -?
Run Code Online (Sandbox Code Playgroud)