これは非常に明白な質問であるはずです...そして、提案された「重複した」回答を調べました...まさか...私の「ハードコードされたソリューションのみが機能します:-(私は1つのパラメーター(パス)が必要です。 Start-Job - ScriptBlock {} コマンドで、これが私のシナリオです。
$MyVariable = "C:\TestPath\Load.ps1"
Start-Job -ScriptBlock { C:\TestPath\Load.ps1 ; while($true) { Get-DataX | Add-ToTable "XXX" ; Start-sleep -s 120}}
これは問題なく動作しますが、ハードコードされています。私が試した多くの解決策のうち、成功しなかったもののいくつかを次に示します。
Start-Job -ScriptBlock { Get-ChildItem "$MyVariable" ; while($true) { Get-DataX | Add-ToTable "XXX" ; Start-sleep -s 120}}
Start-Job -ScriptBlock { param($MyVariable) Get-ChildItem "$MyVariable" ; while($true) { Get-DataX | Add-ToTable "XXX"; Start-Sleep -s 10 }} -Name MyTest #-ArgumentList @($MyVariable)
Start-Job -ScriptBlock { Get-ChildItem "$MyVariable" ; while($true) { Get-DataX | Add-toTable "XXX" ; Start-sleep -s 10}}
Start-Job -ScriptBlock { "$MyVariable" ; while($true) { Get-DataX | Add-toTable "XXX" ; Start-sleep -s 10}}
Start-Job -ScriptBlock { '$MyVariable' ; while($true) { Get-DataX | Add-toTable "XXX" ; Start-sleep -s 10}}
Start-Job -ScriptBlock { using:$MyVariable ; while($true) { Get-DataX | Add-toTable "XXX" ; Start-sleep -s 10}}
Start-Job -ScriptBlock { "using:$MyVariable" ; while($true) { Get-DataX | Add-toTable "XXX" ; Start-sleep -s 10}}
Start-Job -ScriptBlock { $args[0] ; while($true) { Get-DataX | Add-toTable "XXX" ; Start-sleep -s 10}} -Argumentlist@($MyVariable")
しかし、どれも機能しません...では、 Start-Job -ScriptBlock {...} 行内に $MyVariable を渡すにはどうすればよいですか? 多分私の問題はどこかから来ていますか?アイデアは大歓迎です...
ありがとう !
フィリップ