我正在尝试构建一个很酷的“PowerShell命令”(一个包含全局函数的脚本,我以后可以在shell中使用它作为命令),我有一个问题。
我正在使用param()
的参数,并且有一个选项可以使用切换参数(一个不会获得后续信息但稍后仅用于选项的参数 - 例如-l
处的参数Linux命令ls
)。
事情是,当参数名称是字母时,它可以正常工作,但不能使用数字。这很奇怪,因为数字可以定义为变量($4
)。
我需要做什么?
它假设像ping -6
。
想法?
答案 0 :(得分:4)
您提出的要求是不可能的,正如Mathias在评论中指出的那样。
来自language specification的§2.3.4:
2.3.4参数
<强>语法:强>
command-parameter: dash first-parameter-char parameter-chars colonopt first-parameter-char: A Unicode character of classes Lu, Ll, Lt, Lm, or Lo _ (The underscore character U+005F) ? …
你得到的最接近的是:
Param(
[Parameter(Mandatory=$false)]
[Switch]$_7
)
然而,对于你的场景,这样的东西无论如何都会更具可读性:
Param(
[Parameter(Mandatory=$false)]
[ValidateSet(3,5,7)]
[int]$Mode = 7
)