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.