我正在尝试创建一个调用脚本的新作业:
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%正确。
有人能解决我的问题吗?
1条答案
按热度按时间elcex8rz1#
因此
$psscriptRoot\script.ps1
必须是字符串连接,而在您的示例中不存在。因此,PS无法理解它,它将路径视为C:\Users\xxx\Desktopscript.ps1
而不是C:\Users\xxx\Desktop\script.ps1
。请将其用双引号括起来:将
${PSScriptRoot}\script.ps1
替换为"${PSScriptRoot}\script.ps1"
下面是输出:
你应该很好地处理这些变化。注意,我还没有处理过参数部分。