Suche…


Einführung

Ein Operator ist ein Zeichen, das eine Aktion darstellt. Sie weist den Compiler / Interpreter an, bestimmte mathematische, relationale oder logische Operationen auszuführen und das Endergebnis zu erzeugen. PowerShell interpretiert auf eine bestimmte Art und Weise und kategorisiert dementsprechend wie arithmetische Operatoren Operationen hauptsächlich mit Zahlen, sie wirken sich jedoch auch auf Zeichenfolgen und andere Datentypen aus. Neben den Basisoperatoren verfügt PowerShell über eine Reihe von Operatoren, die Zeit und Codieraufwand sparen (z. B. -like, -match, -replace usw.).

Rechenzeichen

1 + 2      # Addition
1 - 2      # Subtraction
-1         # Set negative value
1 * 2      # Multiplication
1 / 2      # Division
1 % 2      # Modulus
100 -shl 2 # Bitwise Shift-left
100 -shr 1 # Bitwise Shift-right

Logische Operatoren

-and # Logical and
-or  # Logical or
-xor # Logical exclusive or
-not # Logical not
!    # Logical not

Zuweisungsoperatoren

Einfache arithmetik:

$var = 1      # Assignment. Sets the value of a variable to the specified value
$var += 2     # Addition. Increases the value of a variable by the specified value
$var -= 1     # Subtraction. Decreases the value of a variable by the specified value
$var *= 2     # Multiplication. Multiplies the value of a variable by the specified value
$var /= 2     # Division. Divides the value of a variable by the specified value
$var %= 2     # Modulus. Divides the value of a variable by the specified value and then
              # assigns the remainder (modulus) to the variable

Inkrement und Dekrement:

$var++   # Increases the value of a variable, assignable property, or array element by 1
$var--   # Decreases the value of a variable, assignable property, or array element by 1

Vergleichsoperatoren

PowerShell-Vergleichsoperatoren bestehen aus einem führenden Bindestrich ( - ), gefolgt von einem Namen ( eq für equal , gt für greater than , usw.).

Namen können mit Sonderzeichen vorangestellt werden, um das Verhalten des Operators zu ändern:

i # Case-Insensitive Explicit (-ieq)
c # Case-Sensitive Explicit (-ceq)

Die Groß- und Kleinschreibung wird nicht berücksichtigt, wenn nicht angegeben ("a" -eq "A") und ("a" -ieq "A").

Einfache Vergleichsoperatoren:

2 -eq 2    # Equal to (==)
2 -ne 4    # Not equal to (!=)
5 -gt 2    # Greater-than (>)
5 -ge 5    # Greater-than or equal to (>=)
5 -lt 10   # Less-than (<)
5 -le 5    # Less-than or equal to (<=)

String-Vergleichsoperatoren:

"MyString" -like "*String"            # Match using the wildcard character (*)
"MyString" -notlike "Other*"          # Does not match using the wildcard character (*)
"MyString" -match "$String^"          # Matches a string using regular expressions
"MyString" -notmatch "$Other^"        # Does not match a string using regular expressions

Vergleichsoperatoren für Sammlungen:

"abc", "def" -contains "def"            # Returns true when the value (right) is present
                                        # in the array (left)
"abc", "def" -notcontains "123"         # Returns true when the value (right) is not present
                                        # in the array (left)
"def" -in "abc", "def"                  # Returns true when the value (left) is present
                                        # in the array (right)
"123" -notin "abc", "def"               # Returns true when the value (left) is not present
                                        # in the array (right)

Umleitungsoperatoren

Erfolgsausgabestrom:

cmdlet > file     # Send success output to file, overwriting existing content
cmdlet >> file    # Send success output to file, appending to existing content
cmdlet 1>&2       # Send success and error output to error stream

Fehlerausgabestrom:

cmdlet 2> file    # Send error output to file, overwriting existing content
cmdlet 2>> file   # Send error output to file, appending to existing content
cmdlet 2>&1       # Send success and error output to success output stream

Warnungsausgabestrom: (PowerShell 3.0+)

cmdlet 3> file    # Send warning output to file, overwriting existing content
cmdlet 3>> file   # Send warning output to file, appending to existing content
cmdlet 3>&1       # Send success and warning output to success output stream

Ausführlicher Ausgabestrom: (PowerShell 3.0+)

cmdlet 4> file    # Send verbose output to file, overwriting existing content
cmdlet 4>> file   # Send verbose output to file, appending to existing content
cmdlet 4>&1       # Send success and verbose output to success output stream

Debug-Ausgabestream: (PowerShell 3.0 und höher)

cmdlet 5> file    # Send debug output to file, overwriting existing content
cmdlet 5>> file   # Send debug output to file, appending to existing content
cmdlet 5>&1       # Send success and debug output to success output stream

Informationsausgabestream: (PowerShell 5.0 und höher)

cmdlet 6> file    # Send information output to file, overwriting existing content
cmdlet 6>> file   # Send information output to file, appending to existing content
cmdlet 6>&1       # Send success and information output to success output stream 

Alle Ausgabeströme:

cmdlet *> file    # Send all output streams to file, overwriting existing content
cmdlet *>> file   # Send all output streams to file, appending to existing content
cmdlet *>&1       # Send all output streams to success output stream

Unterschiede zum Pipe Operator ( | )

Umleitungsoperatoren leiten nur Streams zu Dateien oder Streams zu Streams um. Der Pipe-Operator pumpt ein Objekt entlang der Pipeline zu einem Cmdlet oder der Ausgabe. Die Funktionsweise der Pipeline unterscheidet sich im Allgemeinen von der Funktionsweise der Umleitung und kann unter Arbeiten mit der PowerShell-Pipeline gelesen werden

Mischen von Operandentypen: Der Typ des linken Operanden bestimmt das Verhalten.

Für die Zugabe

"4" + 2         # Gives "42"
4 + "2"         # Gives 6
1,2,3 + "Hello" # Gives 1,2,3,"Hello"
"Hello" + 1,2,3 # Gives "Hello1 2 3"

Zur Multiplikation

"3" * 2   # Gives "33"
2 * "3"   # Gives 6
1,2,3 * 2 # Gives 1,2,3,1,2,3
2 * 1,2,3 # Gives an error op_Multiply is missing

Die Auswirkungen können versteckte Folgen für Vergleichsoperatoren haben:

$a = Read-Host "Enter a number"
Enter a number : 33
$a -gt 5
False

String-Manipulationsoperatoren

Operator ersetzen:

Der -replace Operator ersetzt ein Muster in einem Eingabewert mithilfe eines regulären Ausdrucks. Dieser Operator verwendet zwei Argumente (durch ein Komma getrennt): ein Muster für reguläre Ausdrücke und dessen Ersetzungswert (der optional ist und standardmäßig eine leere Zeichenfolge).

"The rain in Seattle" -replace 'rain','hail'        #Returns: The hail in Seattle
"[email protected]" -replace '^[\w]+@(.+)', '$1'  #Returns: contoso.com

Split- und Join-Operatoren:

Der -split Operator teilt einen String in ein Array von Sub-Strings auf.

"A B C" -split " "      #Returns an array string collection object containing A,B and C.

Der -join Operator -join ein String-Array zu einem einzigen String zusammen.

"E","F","G" -join ":"   #Returns a single string: E:F:G


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow