好的,我觉得即使是询问,但是我已经尝试了几次这样的迭代,除了在Scriptblock语句中对脚本名进行硬编码之外什么都没有用,这是不可接受的。
以下代码有效,硬编码,不可接受......
$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! ; - )
答案 0 :(得分:2)
在上一个例子中,这一行:
$ScriptBlock = [scriptblock]::Create($sb)
只需创建一个包含字符串的scriptblock。将其更改为:
{{1}}