私は尋ねることもできますが、これを数回反復してみましたが、Scriptblockステートメントでスクリプト名をハードコーディングする以外は何も動作していませんでしたが、これは受け入れられません。スクリプトブロックにNONハードコードされたパスとファイル名を指定しますか?
ここで動作するコード、ハードコーディングされ、受け入れられない....
$Scriptblock = { C:\Scripts\Path1\ScriptName.ps1 -arguement0 $args[0] -arguement1 $args[1] }
Start-Job -ScriptBlock $Scriptblock -ArgumentList $argue0, $argue1 | Out-Null
アイブ氏はこれを試みたが、それは動作しませんが...
$loc = (Get-Location).Path
Set-Location -Path $loc
これは....
$rootpath = $MyInvocation.MyCommand.Path.Substring(0, ($MyInvocation.MyCommand.Path).LastIndexOf("\"))
Set-Location -Path $rootpath
そして、この....
$rootpath = $MyInvocation.MyCommand.Path.Substring(0, ($MyInvocation.MyCommand.Path).LastIndexOf("\"))
$scriptFilename = $([string]::Format("{0}\ScriptName.ps1", $rootpath))
$sb = $([string]::Format("{0} -arguement0 $args[0] -arguement1 $args[1]", $scriptFilename))
$Scriptblock = { $sb }
Start-Job -ScriptBlock $Scriptblock -ArgumentList $argue0, $argue1 | Out-Null
何が他のハードコードされたパスとスクリプト名で上記の最初のコードを除いて働いていない - 私はそれが私が行方不明です愚かな何かをしなければなら知っている - 私はSTOOPIDを修正する手助けお願いします!あなたの最後の例では;-)
正確に達成しようとしているのは何ですか? –
スクリプトブロックの別の引数としてパスを渡して、コール演算子を使用できますか? '$ sb = {param($ path、$ arg1、$ arg2)&$ path -argue0 $ arg1 -argue1 $ arg2}' –
@ MathiasR.Jessenそれらの引数でそのスクリプトを使ってジョブを開始します...しかし、ユーザーはこれらのスクリプトをどのパスにも置くことができるので、ハードコーディングされたパスは必要ありません。 –