如何在CmdletBinding之前加载另一个powershell文件?

时间:2015-11-22 07:22:33

标签: powershell powershell-v5.0

我正在使用powershell 5.我在不同的ps1文件中创建了一个枚举,我想将它加载到另一个具有CmdletBinding的ps1中。

我尝试了下面的代码,但没有成功。有没有办法在CmdletBinding之前加载枚举ps1?

. ".\GeneratorType.ps1" 

[CmdletBinding()]
Param
(
        [Parameter(ValueFromPipeline=$True,ValueFromPipelineByPropertyName = $True,Mandatory=$False)]       
        [GeneratorType]$type = [GeneratorType]::All
)

1 个答案:

答案 0 :(得分:1)

可以这样想:PowerShell脚本是一个独立的ScriptBlock。

[CmdletBinding()]属性是param-block的一部分。根据语言规范,如果存在,则param-block必须是ScriptBlock的第一部分。

所以不,你不能在CmdletBinding属性之前放任何东西。

您可以做的是将GeneratorTypes.ps1脚本转换为模块并使用

#Requires -Modules

确保在解释param块时加载它。