我正在使用powershell 5.我在不同的ps1文件中创建了一个枚举,我想将它加载到另一个具有CmdletBinding的ps1中。
我尝试了下面的代码,但没有成功。有没有办法在CmdletBinding之前加载枚举ps1?
. ".\GeneratorType.ps1"
[CmdletBinding()]
Param
(
[Parameter(ValueFromPipeline=$True,ValueFromPipelineByPropertyName = $True,Mandatory=$False)]
[GeneratorType]$type = [GeneratorType]::All
)
答案 0 :(得分:1)
可以这样想:PowerShell脚本是一个独立的ScriptBlock。
[CmdletBinding()]
属性是param-block
的一部分。根据语言规范,如果存在,则param-block必须是ScriptBlock的第一部分。
所以不,你不能在CmdletBinding
属性之前放任何东西。
您可以做的是将GeneratorTypes.ps1
脚本转换为模块并使用
#Requires -Modules
确保在解释param块时加载它。