Templates 如何在Powershell中使用模板设计模式?

Templates 如何在Powershell中使用模板设计模式?,templates,powershell,Templates,Powershell,我想在我的函数中创建一个服务器smo对象,然后使用它对传入的scriptblock做一些有用的事情。之后,服务器veriable将被删除。我想设计一个类似于模板设计模式实现的函数。下面列出了我的代码,我不确定是否要在scriptblock中使用$server变量。有人能帮忙吗?谢谢 function test{ [CmdletBinding()] param ( [Parameter(Mandatory = $true, Position = 0)]

我想在我的函数中创建一个服务器smo对象,然后使用它对传入的scriptblock做一些有用的事情。之后,服务器veriable将被删除。我想设计一个类似于模板设计模式实现的函数。下面列出了我的代码,我不确定是否要在scriptblock中使用$server变量。有人能帮忙吗?谢谢

function test{ [CmdletBinding()] param ( [Parameter(Mandatory = $true, Position = 0)] [object] $instance, [Parameter(Mandatory = $true, Position = 1)] [scriptblock] $script ) [Reflection.Assembly]::LoadWithPartialName('Microsoft.SqlServer.SMO') | out-null $server = new-object ('Microsoft.SqlServer.Management.Smo.Server') $instance # do something with $script Remove-Variable -Name $server } 功能测试{ [CmdletBinding()] param( [参数(必需=$true,位置=0)] [对象] $instance, [参数(必需=$true,位置=1)] [脚本块] $script ) [Reflection.Assembly]::LoadWithPartialName('Microsoft.SqlServer.SMO')| out null $server=新对象('Microsoft.SqlServer.Management.Smo.server')$instance #用$script做些什么 删除变量名$server }
scriptblock需要写入,以便它需要一个服务器变量,例如:

test $anInstance {param($server) $server.DoSomething}
然后在测试函数中执行脚本块,如下所示:

& $scripblock $server
如果scriptblock需要多个参数:

test $anInstance {param($server, $name) $server.DoSomething}
请记住使用空格分隔的参数调用:

& $scripblock $server "A name"