lima-city: Webhosting, Domains und Cloud
2 Pluspunkte 0 Minuspunkte

Hallo zusammen.

Ich habe ein Problem mit einer Switch-Case Anweisung in Powershell

function foo {

    param (
        [bool] $Switch
    )

    'Hello'

    if($Switch -eq $true) {
        "[DEBUG] Switch value: " + $Switch
    }

    switch($Switch) {

        $true {
            'beautiful'
        }

        $false {
            'ugly'
        }

        default {
            'colorful'
        }

    }

    'World'

}

foo -Switch $true

Als Ergebnis kommt das.

start
[DEBUG] Switch value: True
Der Wert "System.Array+SZArrayEnumerator" kann nicht in den Typ "System.Boolean" konvertiert werden. Boolesche Parameter akzeptieren nur boolesche Werte oder Zahlen wie
"$True", "$False", "1" oder "0".
In C:\Users\dani\Desktop\test.ps1:10 Zeichen:9
+         "[DEBUG] Switch value: " + $Switch
+         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : MetadataError: (:) [], ArgumentTransformationMetadataException
    + FullyQualifiedErrorId : RuntimeException
 
end

Ich verstehe nicht ganz was das bedeuten soll oder wie ich den Fehler beheben kann. Für Hilfe wäre ich sehr dankbar.

von  

1 Antwort

1 Pluspunkt 0 Minuspunkte

Die Variable $Switch ist eine sogenannte automatic variable wie auch $True oder $False u.s.w. Automatische Variablen in PowerShell sind vordefinierte Variablennamen, die vom System oder der PowerShell Engine verwendet werden. Daher sollten solche Namen für eigene Variablen vermieden werden, um mögliche Konflikte zu verhindern. Wenn du die Variable $Switch in z.B $MySwitch änderst sollte es eigentlich funktionieren.

von (617 Punkte)  
Diese Community basiert auf dem Prinzip der Selbstregulierung. Beiträge werden von Nutzern erstellt, bewertet und verbessert – ganz ohne zentrale Moderation.

Wer hilfreiche Fragen stellt oder gute Antworten gibt, sammelt Punkte. Mit steigender Punktzahl erhalten Mitglieder automatisch mehr Rechte, zum Beispiel

  • Kommentare verfassen
  • Beiträge bewerten
  • Inhalte bearbeiten
  • Inhalte ausblenden

So entsteht eine Plattform, auf der sich Qualität durchsetzt – getragen von einer engagierten Gemeinschaft. Unser Ziel: Guter Inhalt. Für alle.

2.3k Fragen

2.8k Antworten

260 Kommentare

12 Nutzer