Powershell:我可以将现有的枚举用于我自己的函数参数吗?

时间:2014-07-26 00:09:47

标签: powershell parameters enums

我想重新使用已存在的枚举来实现我自己的功能。我希望来自Test-Path -PathType的枚举。就像我一样,我希望我自己的函数具有接受PathTypeAnyLeaf的参数Container

这可以在不重新定义枚举的情况下完成吗?如何确定实际调用枚举本身的内容?

1 个答案:

答案 0 :(得分:4)

它是TestPathType枚举。你应该能够接受它作为一个正式的论据,例如:

function Do-Something([Microsoft.PowerShell.Commands.TestPathType] $pathType) {
  ...
}

顺便说一句,Powershell会在您提供无效值时告诉您错误消息中的参数类型,例如:

Test-Path -PathType Banana

的产率:

Test-Path : Cannot bind parameter 'PathType'. Cannot convert value "Banana" to type
"Microsoft.PowerShell.Commands.TestPathType". Error: "Unable to match the identifier name Banana to a valid enumerator
name.  Specify one of the following enumerator names and try again: Any, Container, Leaf"
At line:1 char:21

但是如果你想更加主动地查看命令元数据,你可以直接检查它,例如:

(Get-Command Test-Path).Parameters.PathType.ParameterType