Как использовать шаблон дизайна шаблона в Powershell? - PullRequest
1 голос
/ 18 марта 2012

Я хочу создать серверный объект smo в своей функции, а затем использовать его для чего-то полезного с переданным в 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
}

1 Ответ

3 голосов
/ 18 марта 2012

Блок сценария должен быть написан так, чтобы он ожидал серверную переменную, например:

test $anInstance {param($server) $server.DoSomething}

Затем в вашей тестовой функции выполните блок сценария следующим образом:

& $scripblock $server

И еслиДля скриптового блока требуется несколько параметров:

test $anInstance {param($server, $name) $server.DoSomething}

Не забудьте вызвать с использованием разделенных пробелами аргументов:

& $scripblock $server "A name"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...