Hallo,
ich bin dabei, mir ein PS Modul mit mehreren Funktionen zu erstellen.
Nachdem ich nun alle "about_Functions..." Dokumente gelesen habe, habe ich meinen bisherigen Quelltext nochmal umgebaut :)
Nun habe ich folgendes Problem mit der Parameterübergabe/dem Pipelining.
Ich habe eine Funktion, die zwei Werte, einen String und einen Int zurückgibt.
In einer weiteren Funktion werden diese Parameter dann übernommen und weiter verarbeitet.
Sobald ich die zwei Parameter der zweiten Funktion mit ParameterSetName definiere (einmal String, einmal Int) und diese Funktion in der ISE Commandline mit manuell angegebenen Parametern aufrufen möchte, habe ich das Problem, dass sobald ich den ersten Parameter
angebe, der zweite Parameter nicht mehr in der Auswahlliste, die ich durch Eingabe des - erhalte, erscheint. Kommentiere ich die ParameterSetName Zeilen aus, kann ich beide Parameter angeben.
Bei Ausführung dieser Funktion mit definiertem ParameterSet und Angabe beider Parameter erhalte ich die Fehlermeldung "Der Parametersatz kann mit den angegebenen benannten Parametern nicht aufgelöst werden".
Was mache ich hier falsch?
Nun mein weiteres Problem. Wenn ich Funktion1 | Funktion2 aufrufe, in meinem Quelltext kein Begin, Process, End nutze und dann $Input, die Pipelinevariablen 1 und 2 ausgebe, enthält $Input wie erwartet beide Parameter. Warum aber ist die erste Pipelinevariable leer während die zweite Pipelinevariable den korrekten Wert enthält? Ich habe der Doku entnommern, dass ich nur bei Verwendung von Process einen Streamingmodus habe.
Wo finde ich ein HowTo, aus dem ich erfahre, wie man ein Trace-Command Logfile lesen muss?
Wenn ich in meinem Log z.B. "ParameterBinding Information: 0 : Parameter [Port] PIPELINE INPUT ValueFromPipeline NO COERCION" sehe, obwohl ich bei den Parametern ValueFromPipeLine = $True gesetzt habe, kann ich damit nichts
anfangen.
So, das war es erstmal ;)
Ich danke Euch.
Gruss
Thomas