Warum gibt mein Boolescher Wert 0 true zurück?

Ich habe an einigen PowerShell-Skripten gearbeitet und etwas Seltsames gefunden. Ich habe ein Skript, das 4 obligatorische Parameter akzeptiert: zwei Zeichenfolgen und zwei Boolesche Werte.

.\[scriptname] [string1] [string2] [bool1] [bool2]

Dies funktioniert einwandfrei und ich habe überprüft, ob sie alle korrekt übergeben werden.

Ich habe jedoch etwas Seltsames gefunden, als PowerShell nach Parametern fragt. es setzt beide Boolesche Werte auf true.

.\[scriptname] [string1] [string2]
please enter bool1: 0
please enter boo2: 0

Anschließend wird das Skript ausgeführt, als ob bool1 und bool2 auf true gesetzt wären und nicht auf das, was ich für sie festgelegt habe. Ich habe wahres Übergehen in allen möglichen Dingen und es führt immer zu wahrem.

Ich bin mir nicht sicher, warum dies geschieht, und wollte wissen, ob jemand auf eine Ursache oder Lösung für dieses bizarre Problem gestoßen ist!

Ich habe auch festgestellt, dass der Taskplaner ein ähnliches Problem hat. Richten Sie es mit ein

powershell -file [scriptlocation] [string1] [string2] [bool1] [bool2]

Beispiel:

Powershell -Datei "C: \ script1.ps1" "c: \ fileOne.txt" "c: \ folder1" 0 0

Beide Booleaner kommen als Zeichenketten durch.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage