Dlaczego moja wartość logiczna o wartości 0 powraca do wartości true?

Pracowałem nad niektórymi skryptami PowerShell i znalazłem coś dziwnego. Mam skrypt, który akceptuje 4 obowiązkowe parametry: dwa łańcuchy i dwa Booleany.

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

Działa to dobrze i sprawdziłem, czy wszystkie są poprawnie przekazywane.

Jednak znalazłem coś dziwnego, gdy PowerShell prosi o parametry; ustawia oba booleany na true.

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

Następnie uruchamia skrypt tak, jakby bool1 i bool2 były ustawione na true, a nie na to, na co je ustawiłem. Mam prawdziwe przemijanie różnych rodzajów rzeczy i zawsze skutkuje to prawdą.

Nie jestem pewien, dlaczego tak się dzieje i chciałem wiedzieć, czy ktoś natknął się na przyczynę lub rozwiązanie tego dziwnego problemu!

Odkryłem również, że Harmonogram zadań ma podobny problem. Ustaw to

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

przykład:

powershell -file "C: script1.ps1" "c: fileOne.txt" "c: folder1" 0 0

Obaj boolanie przechodzą jako sznurki.

questionAnswers(2)

yourAnswerToTheQuestion