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


Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow