Ich muss die Powershell-Datei test.ps1 aus test1.ps1 ausführen. Ich benutze Start-Job-Funktion der Powershell. In meinem test1.ps1 habe ichFehler beim Starten eines Powershell-Jobs mit Skriptblock und Argumentliste
$pathToFile = (Join-Path -Path $PSSCriptRoot -ChildPath "test.ps1")
$ar = $a, $b # all these variables have values assigned
Start-Job -Name job2 -ScriptBlock{& $pathToFile -fName $args[0] -lName $args[1]} -ArgumentList $ar
In meinem test.ps1 habe ich fName und lName als Parameter wie:
param([string]fName, [string]lName]
halte ich die folgende Fehlermeldung erhalten:
The expression after '&' in a pipeline element produced an object that was not valid. It must result in a command name, a script block, or a CommandInfo object.
Das Problem ist hier Start-Job -Name job2 -ScriptBlock{& $pathToFile -fName $args[0] -lName $args[1]} -ArgumentList $ar
Aber ich finde nicht die Lösung, um dieses Problem zu lösen.Und Ja, ich habe überprüft, dass $ pathToFile den genauen Pfad zu test.ps1 => C: \ foo \ test.ps1 enthält Danke für jede Hilfe oder Anregung.
Dies hat wenig mit der Frage des OP zu tun, die darauf hinausläuft, dass eine lokale Variable nicht definiert wird, wenn sie im Kontext eines Jobs ausgeführt wird. – mklement0