2017-03-18 17 views
0

私はpowershellモジュールに関数を入れ、ある状況ではモジュールをロードして関数をループで呼び出すというシナリオがありますが、別の状況ではモジュールをロードし、Runspaceを使用して並列に関数を使用したいとします。しかし、私が知る限りでは、関数を変数として代入することも、関数を使ってジョブを作成することもできません。 これは正しいですか?コードを2か所、1つのスクリプトで関数として、もう1つをスクリプトブロックとして維持する必要がありますか?スクリプトブロックではなく関数を使ったrunspacepoolジョブ

答えて

2
Function Get-Example 
{ 
    Write-Verbose -Verbose "This is an example" 
} 

$block = (Get-Command Get-Example).ScriptBlock 
Start-Job -ScriptBlock $block 
+0

ニース。私は不思議です:関数がカスタムモジュールの一部であり、同じモジュール内の他の関数に依存していた場合(カスタムモジュールが$ env:PSModulePathで利用可能であると仮定した場合)はどうなりますか?私は必要な場合、産んだ仕事がモジュールをオートロードできると思いますか? – Robin

+0

私はあなたが関数からスクリプトブロックを正確に取得すると信じています。そして、それがスクリプトモジュールだった場合に限る。他のモジュールをインポートするには 'Start-Job -InitializationScript'のようなことをする必要があります。 –

関連する問題