Übergabe von Parametern an PowerShell-Funktionen

Es hat mal wieder lange gedauert bis ich herausgefunden habe, warum der folgende Funktionsaufruf in der PowerShell nicht richtig funktioniert: function f1 ($p1, $p2) { write-host $p1; write-host $p2; }

f1(“test”, “123”);
Als Ausgabe kommt nur eine Zeile, anstatt wie erwartet zwei: test 123

In einer Microsoft-Newsgroup habe ich die Antwort gefunden: Die Powershell interpretiert die “Parameterübergabe” ("test", "123") als Array (diese werden in der PowerShell in Klammern und mit Kommas getrennt geschrieben). Dieser dient der Funktion als erster Parameter, während der zweite dann leer bleibt. Somit wird nur eine Zeile ausgegeben. Der folgende Funktionsaufruf führt zum richtigen Ergebnis: f1 "test" "123";

Über Stefan

Polyglot Clean Code Developer

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax