PowerShell
operatörer
Sök…
Introduktion
En operatör är ett tecken som representerar en åtgärd. Den berättar kompilatorn / tolkaren att utföra specifik matematisk, relationell eller logisk operation och producera slutresultatet. PowerShell tolkar på ett specifikt sätt och kategoriserar i enlighet därmed som aritmetiska operatörer utför operationer främst på siffror, men de påverkar också strängar och andra datatyper. Tillsammans med de grundläggande operatörerna har PowerShell ett antal operatörer som sparar tid och kodningsinsatser (t.ex.: -liknande, -match, -replacering osv.).
Aritmetiska operatörer
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
Logiska operatörer
-and # Logical and
-or # Logical or
-xor # Logical exclusive or
-not # Logical not
! # Logical not
Uppdragsoperatörer
Enkel aritmetik:
$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
Ökning och minskning:
$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
Jämförelseoperatörer
PowerShell-jämförelseoperatörer består av ett ledande bindestreck ( -
) följt av ett namn ( eq
för equal
, gt
för greater than
, etc ...).
Namn kan föregås av specialtecken för att ändra operatörens beteende:
i # Case-Insensitive Explicit (-ieq)
c # Case-Sensitive Explicit (-ceq)
Fall-okänslig är standard om den inte anges ("en" -ek "A") samma som ("en" -ieq "A").
Enkel jämförelseoperatörer:
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 (<=)
Stringjämförelseoperatörer:
"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
Operatörer för samling av jämförelser:
"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)
Omdirigeringsoperatörer
Framgångsström:
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
Felutmatningsström:
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
Varningsutgångsström: (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
Övergiven utgångsström: (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 output stream: (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
Informationsutgångsström: (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
Alla utgångsströmmar:
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
Skillnader i röroperatören ( |
)
Omdirigeringsoperatörer omdirigerar endast strömmar till filer eller strömmar till strömmar. Röroperatören pumpar ett objekt längs rörledningen till en cmdlet eller utgången. Hur rörledningen fungerar skiljer sig generellt från hur omdirigeringen fungerar och kan läsas på Arbeta med PowerShell-pipeline
Blanda operandtyper: typen av vänster operand dikterar beteendet.
För tillägg
"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"
För 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
Påverkan kan ha dolda konsekvenser för jämförande operatörer:
$a = Read-Host "Enter a number"
Enter a number : 33
$a -gt 5
False
Strängmanipuleringsoperatörer
Byt ut operatören:
Operatören -replace
ersätter ett mönster i ett inmatningsvärde med ett vanligt uttryck. Den här operatören använder två argument (separerade med komma): ett vanligt uttrycksmönster och dess ersättningsvärde (som är valfritt och en tom sträng som standard).
"The rain in Seattle" -replace 'rain','hail' #Returns: The hail in Seattle
"[email protected]" -replace '^[\w]+@(.+)', '$1' #Returns: contoso.com
Dela och gå med operatörer:
Operatören -split
delar upp en sträng i en rad understrängar.
"A B C" -split " " #Returns an array string collection object containing A,B and C.
Operatören -join
förenar en rad strängar i en enda sträng.
"E","F","G" -join ":" #Returns a single string: E:F:G