czy zmagasz się ze zrozumieniem operatorów porównania PowerShell, takich jak eq
, ne
, ceq
I cne
. Jeśli tak, czytaj dalej.
wychodząc z zaplecza programistycznego pierwszy raz miałem „hę?”moment był, kiedy po raz pierwszy zobaczyłem operatorów porównania PowerShell eq
, ceq
, cne
, itd., Wszystkie inne języki mają operatory porównawcze, ale nie do końca jak PowerShell. Byłem używany do ==
I <>
.
składnia nie tylko wygląda zupełnie inaczej niż typowy język programowania, ale również zachowuje się inaczej podczas porównywania zbiorów wartości.
to coś, co naprawdę mnie zawiesiło, gdy dowiedziałem się o PowerShell, ale teraz wydaje się to stare powiedzenie piwne; to nabyty smak.,
przejdźmy krótko do tego, czym jest operator porównania, jeśli nie jesteś zaznajomiony i zagłęb się głębiej w niuanse, które wprowadza PowerShell. Wkrótce będziesz mógł bez problemu używać operatorów w skryptach PowerShell.
jak już wspomniałem, wszystkie języki programowania/Skryptowe mają operatory porównawcze. W ich najbardziej podstawowym znaczeniu operatory porównawcze są niezbędne do oceny, jak różne rzeczy porównują się z innymi rzeczami. Są one używane do podjęcia dwóch obiektów i zobaczyć, jaka jest różnica (jeśli w ogóle) między tymi dwoma obiektami.,
w przypadku PowerShell operatory mogą być również używane do znajdowania elementów wewnątrz kolekcji wartości.
w tym poście omówię operatory równości i sposób, w jaki PowerShell z nich korzysta. Są to eq
I ne
wraz z ich odpowiednikami uwzględniającymi wielkość liter ceq
oraz cne
. Aby uzyskać pełną listę, możesz przeskoczyć na stronę Technet lub po prostu użyć Get-Help about_comparison_operators
w konsoli Powershell.,
PowerShell-EQ i-CEQ
Jeśli kiedykolwiek chcesz sprawdzić, czy obiekt jest równy innemu obiektowi, musisz użyć operatoróweq
(rozróżniająca wielkość liter) lubceq
(rozróżniająca wielkość liter). Operatory te testują wartość każdej jednostki, z którą chcesz porównać.
Kiedy zacząłem uczyć się PowerShell ' a, ciągle robiłem coś takiego
$string = 'Adam'if ($string = 'Adam') { 'string is equal to Adam'}
wkrótce będziesz na tyle powalony, aby tego nie robić. Znak =
jest operatorem przypisania, a nie operatorem porównania., Nie można użyć znaku =
, aby porównać jedną wartość z inną.
właściwym sposobem jest zdefiniowanie wartości do sprawdzenia po lewej stronie wyrażenia i użycie operatoraeq
. Oto przykład operatorów eq
I ceq
I sposób ich użycia.,
Notice how eq
returned a boolean True
value when comparing our variable against adam
but ceq
returned a boolean False
value? This displays the case sensitivity difference between the two operators.,
to wszystko jest dobre i dobre dla wartości skalarnych (pojedynczych), ale można również znaleźć wszystkie instancje poszczególnych wartości za pomocą tych operatorów. Na przykład użyj operatora PowerShell-eq do filtrowania elementów w tablicy:
Jeśli masz zmienna z kolekcją wartości, takich jak tablica, możesz użyć eq
I ceq
, aby znaleźć wszystkie instancje wartości wewnątrz kolekcji.,
zauważ, że znalazł wszystkie instancje integer 9, z którymi próbowaliśmy porównać. Używam tej poręcznej metody cały czas.
-NE i-CNE
po przeciwnej stronie masz oba ne
I cne
. Są one dokładnie przeciwieństwem eq
I ceq
, ale wyświetlają dokładnie to samo zachowanie tylko przeciwne. Oni nie testują równości, oni testują nierówność.
mam nadzieję, że daje to dobre wyjaśnienie operatorów porównania równości. To naprawdę sprawiło, że odłożyłem słuchawkę jako początkujący i nigdy tak naprawdę nie kliknęło, dopóki nie zostałem po prostu pobity przez komunikaty o błędach. Mam nadzieję, że ten post zapobiega tym samym uderzeniu, które otrzymałem.