Powershell在新作业中调用脚本

mzsu5hc0  于 2023-02-16  发布在  Shell
关注(0)|答案(1)|浏览(165)

我正在尝试创建一个调用脚本的新作业:

Write-Output "start"

$j1 = Start-Job -ScriptBlock { Write-Output "Thread1 running"; & ${PSScriptRoot}\script.ps1 -ARG1 ${arg1} -ARG2 ${arg2}; Write-Output "Thread1 finish" }

$j1 | Wait-Job | Receive-Job

Write-Output "done"

但它不工作。错误说(德语):Die Benennung "\script.ps1" wurde nicht als Name eines Cmdlet, einer Funktion, einer Skriptdatei oder eines ausführbaren Programms erkannt. Überprüfen Sie die Schreibweise des Namens, oder ob der Pfad korrekt ist (sofern enthalten), und wiederholen Sie den Vorgang.
问题显然出在& ${PSScriptRoot}\script.ps1 -ARG1 ${arg1} -ARG2 ${arg2};中,但根路径100%正确。
有人能解决我的问题吗?

elcex8rz

elcex8rz1#

因此$psscriptRoot\script.ps1必须是字符串连接,而在您的示例中不存在。因此,PS无法理解它,它将路径视为C:\Users\xxx\Desktopscript.ps1而不是C:\Users\xxx\Desktop\script.ps1。请将其用双引号括起来:
${PSScriptRoot}\script.ps1替换为"${PSScriptRoot}\script.ps1"
下面是输出:

你应该很好地处理这些变化。注意,我还没有处理过参数部分。

相关问题