繁体   English   中英

在PowerShell中将数字用作切换参数

[英]Using a number as a switch parameter in PowerShell

我试图构建一个很酷的“ PowerShell命令”(一个包含全局函数的脚本,以后可以从外壳程序中将其用作命令),但是我遇到了问题。

我将参数与param()一起使用,并且有一个选项可以使用switch参数(一个不会获取后续信息,而是稍后用于选项的选项-例如Linux命令ls-l )。

问题是,当参数名称是字母而不是数字时,它可以正常工作。 奇怪的是,数字可以定义为变量( $4 )。

我需要做什么?

它应该像ping -6

想法?

正如Mathias在评论中指出的那样,您要问的是不可能的。

根据语言规范的第2.3.4节:

2.3.4参数

句法:

  \n     破折号first-parameter-char parameter-chars Colonopt\n \n     Lu,Ll,Lt,Lm或Lo类的Unicode字符\n     _(下划线字符U + 005F)\n     \n ... 

最接近的是这样的:

Param(
  [Parameter(Mandatory=$false)]
  [Switch]$_7
)

但是,对于您的情况,无论如何,这样的可读性更强:

Param(
  [Parameter(Mandatory=$false)]
  [ValidateSet(3,5,7)]
  [int]$Mode = 7
)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM