PowerShell
operators
Zoeken…
Invoering
Een operator is een personage dat een actie vertegenwoordigt. Het vertelt de compiler / tolk om een specifieke wiskundige, relationele of logische bewerking uit te voeren en een eindresultaat te produceren. PowerShell interpreteert op een specifieke manier en categoriseert dienovereenkomstig zoals rekenkundige operatoren bewerkingen voornamelijk op getallen uitvoeren, maar ze beïnvloeden ook strings en andere gegevenstypen. Naast de basisoperators heeft PowerShell een aantal operators die tijd en codeerinspanningen besparen (bijvoorbeeld: -like, -match, -replace, enz.).
Rekenkundige operatoren
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
Opdrachtexploitanten
Eenvoudig rekenen:
$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
Verhogen en verlagen:
$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
Vergelijkingsoperatoren
PowerShell-vergelijkingsoperatoren bestaan uit een voorloopstreepje ( -
) gevolgd door een naam ( eq
voor equal
, gt
voor greater than
, enz ...).
Namen kunnen worden voorafgegaan door speciale tekens om het gedrag van de operator te wijzigen:
i # Case-Insensitive Explicit (-ieq)
c # Case-Sensitive Explicit (-ceq)
Hoofdletterongevoelig is de standaardwaarde indien niet opgegeven ("a" -eq "A") hetzelfde als ("a" -ieq "A").
Eenvoudige vergelijkingsoperatoren:
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 (<=)
Stringvergelijkingsoperatoren:
"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
Operatoren voor het vergelijken van collecties:
"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)
Omleidingsoperators
Succes outputstroom:
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
Fout uitgangsstroom:
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
Waarschuwing uitvoerstroom: (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
Uitgebreide uitvoerstroom: (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
Foutopsporingsoutputstroom: (PowerShell 3.0+)
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
Informatie-outputstroom: (PowerShell 5.0+)
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 outputstromen:
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
Verschillen met de pijpexploitant ( |
)
Omleidingsoperators leiden alleen streams door naar bestanden of streams naar streams. De pijpexploitant pompt een object door de pijpleiding naar een cmdlet of de uitvoer. Hoe de pijplijn werkt, verschilt in het algemeen van hoe omleiding werkt en is te lezen op Werken met de PowerShell-pijplijn
Operandtypen mengen: het type linkeroperand bepaalt het gedrag.
Voor toevoeging
"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"
Voor vermenigvuldiging
"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
De impact kan verborgen gevolgen hebben voor vergelijkingsoperatoren:
$a = Read-Host "Enter a number"
Enter a number : 33
$a -gt 5
False
Stringmanipulatie-operators
Vervang operator:
De -replace
operator vervangt een patroon in een invoerwaarde met een gewone expressie. Deze operator gebruikt twee argumenten (gescheiden door een komma): een regulier expressiepatroon en de vervangende waarde (die optioneel is en standaard een lege string).
"The rain in Seattle" -replace 'rain','hail' #Returns: The hail in Seattle
"[email protected]" -replace '^[\w]+@(.+)', '$1' #Returns: contoso.com
Operators splitsen en deelnemen:
De operator -split
splitst een string in een array van -split
.
"A B C" -split " " #Returns an array string collection object containing A,B and C.
De operator -join
voegt een reeks strings samen in een enkele string.
"E","F","G" -join ":" #Returns a single string: E:F:G