如何在自定义脚本 cmdlet 中指定参数可接受通配符字符?

4
当您使用Get-Help SomeCommand -Full时,在每个参数下,除了描述之外,还有一些附加的参数属性。其中一个属性是“接受通配符字符?”。当我为自定义脚本 cmdlet 创建帮助信息时,如何指定一个参数接受通配符呢?

我认为这取决于你具体在做什么。你是在用C#编写cmdlet吗?如果是的话,在创建参数时它只需被声明(请参见此处的代码示例[https://msdn.microsoft.com/en-us/library/ms714667(v=vs.85).aspx#declareparametersdataaccess]下的声明Pattern参数)。 - TheMadTechnician
2个回答

9
在您的脚本的param部分中,添加属性SupportsWildcards()
例如:
param (
        [SupportsWildcards()][String]$variable
      )

1
这似乎对参数声明的位置非常敏感。除非它是第一个属性,否则我无法使其正常工作: [SupportsWildcards()] [Parameter()] [String]$ComputerName - CitizenRon

4
如果您想要实现这个功能,需要做一些事情。首先,您必须创建一个.dll文件,但是您没有这样做,或者您可以创建一个模块。我不会详细介绍如何创建模块,因为网络上已经有很多写得很好的指南了,您可以去查找。

作为模块的一部分,您可以包含.XML文件,这些文件提供帮助信息,类似于单个脚本提供的注释式帮助。XML风格确实具有一些优点,例如一致性和一些高级功能,但需要更多的努力。因此,我强烈建议阅读编写Windows PowerShell模块帮助,它将解释如何放置XML文件,如何结构化以及所需的头文件等等。

如果我是您,我可能会复制现有的XML帮助文件,并编辑它以适应我的命令,查找并阅读有关创建模块的快速指南,然后放弃这个想法,因为如果只是添加“支持通配符”标志(在我看来)这并不值得花费太多精力,如果一开始只是一个基本的带有注释帮助的脚本。

但答案是,为您的命令创建一个模块和支持XML的帮助文件。有了这个,您就可以为参数添加“接受通配符”标志。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接