【发布时间】:2013-07-12 23:22:35
【问题描述】:
加载模块时,PowerShell 是否调用任何初始化代码?
我正在寻找类似 Perl BEGIN 块或构造函数的东西。
NEW-MODULE 和 IMPORT-MODULE 都将返回一个 PSCustomObject。我正在尝试将自定义对象封装在模块中,以避免脚本中出现冗长的代码。在开放代码中测试良好的一种方法是:
$m = new-module -scriptblock {
New-Object PSCustomObject |
Add-Member NoteProperty -name person -value Frodo -passthru |
Add-Member ScriptMethod Who { $this.person } -passthru |
Add-Member ScriptMethod Mod {
param($x)
$this.person = $x
} -passthru
} -ascustomobject -returnresult
理想情况下,我想将此代码放入一个模块并使用类似的东西:
$MyObj = Import-Module -Name ".\MyPackage" -AsCustomObject
并让 MyObj 成为与第一个 sn-p 提供的对象相同的句柄。
建议表示赞赏。
【问题讨论】:
标签: powershell module