- 23.05.2020
- 18 Minuten zum Lesen
-
- j
- x
- t
- D
- s
Wie viele andere Sprachen enthält PowerShell Anweisungen zum bedingten Ausführen von Code in yourscripts. Eine dieser Aussagen ist die If-Anweisung., Heute werden wir einen tiefen Einblick in eine vondie grundlegendsten Befehle in PowerShell.
Hinweis
Die Originalversion dieses Artikels erschien auf dem Blog von @KevinMarquette. ThePowerShell Team dankt Kevin für den Austausch dieser Inhalte mit uns. Bitte schauen Sie sich seinen Blog an atPowerShellExplained.com.
Bedingte Ausführung
Ihre Skripte müssen häufig Entscheidungen treffen und basierend auf diesen Entscheidungen eine andere Logik ausführen.Das meine ich mit bedingter Ausführung., Sie müssen eine Anweisung oder einen Wert auswerten, dannexecute einen anderen Codeabschnitt basierend auf dieser Auswertung. Dies ist genau das, was die if
– Anweisung macht.
Die if-Anweisung
Hier ist ein grundlegendes Beispiel für dieif
– Anweisung:
$condition = $trueif ( $condition ){ Write-Output "The condition was true"}
Als erstes ausgewertet die if
– Anweisung den Ausdruck in Klammern. Wenn es evaluatesto $true
„, dann führt er die scriptblock
in den geschweiften Klammern., Wenn der Wert $false
, würde er diesen Scriptblock überspringen.
Im vorherigen Beispiel hat die Anweisung if
nur die Variable $condition
ausgewertet. Es war$true
und hätte den Befehl Write-Output
im scriptblock ausgeführt.
In einigen Sprachen können Sie eine einzelne Codezeile nach der if
– Anweisung platzieren und diese wird verfolgt. Das ist in PowerShell nicht der Fall. Sie müssen eine vollständige scriptblock
mit Klammern angeben, damit sie korrekt funktionieren.,
Vergleichsoperatoren
Die häufigste Verwendung der if
– Anweisung besteht darin, zwei Elemente miteinander zu vergleichen. PowerShell hatspezielle Operatoren für verschiedene Vergleichsszenarien. Wenn Sie einen Vergleichsoperator verwenden, der Wertauf der linken Seite wird mit dem Wert auf der rechten Seite verglichen.
– eq für Gleichheit
Die -eq
führt eine Gleichheitsprüfung zwischen zwei Werten durch, um sicherzustellen, dass sie gleich sind.,
$value = Get-MysteryValueif ( 5 -eq $value ){ # do something}
In diesem Beispiel nehme ich einen bekannten Wert von 5
und vergleiche ihn mit meiner $value
, um zu sehen, ob sie übereinstimmen.
Ein möglicher Anwendungsfall besteht darin, den Status eines Werts zu überprüfen, bevor Sie eine Aktion ausführen. Sie können einen Dienst erstellen und überprüfen, ob der Status ausgeführt wurde, bevor Sie Restart-Service
Restart-Service
.
In anderen Sprachen wie C# ist es üblich, ==
für die Gleichheit zu verwenden (z. B. 5 == $value
), aber das funktioniert nicht mit PowerShell., Ein weiterer häufiger Fehler, den Benutzer machen, ist die Verwendung des Gleichheitszeichens (z. B.5 = $value
), das für die Zuweisung von Werten zu Variablen reserviert ist. Indem Sie Ihren bekannten Wert auf theleft setzen, macht es diesen Fehler unangenehmer zu machen.
Dieser Operator (und andere) hat einige Variationen.,
-
-eq
groß- / Kleinschreibung Gleichheit -
-ieq
groß- / Kleinschreibung Gleichheit -
-ceq
groß-und Kleinschreibung Gleichheit
-ne not equal
Viele Betreiber haben einen zugehörigen operator, der prüft, für das gegenteilige Ergebnis. -ne
überprüft, ob die Werte nicht gleich sind.
if ( 5 -ne $value ){ # do something}
Hiermit stellen Sie sicher, dass die Aktion nur ausgeführt wird, wenn der Wert nicht 5
ist., Ein guter Anwendungsfall wäre zu überprüfen, ob sich ein Dienst im laufenden Zustand befindet, bevor Sie versuchen, ihn zu starten.
Variationen:
-
-ne
Groß-und Kleinschreibung nicht gleich -
-ine
Groß-und Kleinschreibung nicht gleich -
-cne
Groß-und Kleinschreibung nicht gleich
Dies sind inverse Variationen von -eq
. Ich gruppiere diese Typen zusammen, wenn ich variationsfor andere Operatoren aufliste.,
– gt-ge-lt-le für größer oder kleiner als
Diese Operatoren werden bei der Überprüfung verwendet, um festzustellen, ob ein Wert größer oder kleiner als ein anderer Wert ist.Die -gt -ge -lt -le
steht für GreaterThan, GreaterThanOrEqual, LessThan und LessThanOrEqual.,größer als oder gleich, Groß-und Kleinschreibung
-cge
größer oder gleich, Groß-und Kleinschreibung-lt
kleiner als-ilt
kleiner als, Groß-und Kleinschreibung-clt
weniger groß-und Kleinschreibung-le
kleiner oder gleich-ile
kleiner oder gleich, Groß-und Kleinschreibung-cle
kleiner oder gleich, Groß-und KleinschreibungIch weiß nicht, warum Sie Groß-und Kleinschreibung Optionen verwenden würden für diese Betreiber.,
-wie wildcard-Spiele
PowerShell hat Ihren eigenen Platzhalter-basierten pattern-matching-syntax, und Sie können es verwenden, mit die -like
operator. Diese Platzhaltermuster sind ziemlich einfach.
-
?
entspricht einem einzelnen Zeichen -
*
entspricht einer beliebigen Anzahl von Zeichen
$value = 'S-ATX-SQL01'if ( $value -like 'S-*-SQL??'){ # do something}
Es ist wichtig darauf hinzuweisen, dass das Muster mit der gesamten Zeichenfolge übereinstimmt. Wenn Sie matchsomething in der Mitte der Zeichenfolge benötigen, müssen Sie die *
an beiden Enden des Strings platzieren.,e“>
Variationen:
-
-like
Groß-und Kleinschreibung -
-ilike
Groß-und Kleinschreibung -
-clike
Groß-und Kleinschreibung -
-notlike
groß-und Kleinschreibung wildcard not matched -
-inotlike
Groß-und Kleinschreibung wildcard not matched -
-cnotlike
Groß-und Kleinschreibung wildcard not matched
-match regular expression
Mit dem Operator -match
können Sie eine Zeichenfolge auf einen regulären ausdruck-basierte Übereinstimmung., Verwenden Sie dies, wenn die Platzhaltermuster nicht flexibel genug für Sie sind.
$value = 'S-ATX-SQL01'if ( $value -match 'S-\w\w\w-SQL\d\d'){ # do something}
Ein Regex-Muster stimmt standardmäßig mit einer beliebigen Stelle in der Zeichenfolge überein. Sie können also einen Teilstring angeben, denSie möchten wie folgt übereinstimmen:
$value = 'S-ATX-SQL01'if ( $value -match 'SQL'){ # do something}
Regex ist eine komplexe Sprache für sich und einen Blick wert. Ich spreche mehr über -match
unddie vielen Möglichkeiten, Regex in einem anderen Artikel zu verwenden.,
Variations:
-
-match
case-insensitive regex -
-imatch
case-insensitive regex -
-cmatch
case-sensitive regex -
-notmatch
case-insensitive regex not matched -
-inotmatch
case-insensitive regex not matched -
-cnotmatch
case-sensitive regex not matched
-is of type
You can check a value’s type with the -is
operator.,
if ( $value -is ){ # do something}
Sie können dies verwenden, wenn Sie mit Klassen arbeiten oder verschiedene Objekte über die Pipeline akzeptieren. Youcould haben entweder einen service oder service-Namen als Ihre Eingabe. Überprüfen Sie dann, ob Sie einen Dienst habenund rufen Sie den Dienst ab, wenn Sie nur den Namen haben.,
if ( $Service -isnot ){ $Service = Get-Service -Name $Service}
Variationen:
-
-is
vom Typ -
-isnot
nicht vom Typ
Sammlungsoperatoren
Wenn Sie die vorherigen Operatoren mit einem einzigen Wert verwenden, lautet das Ergebnis $true
oder $false
. Dies wird bei der Arbeit mit einer Sammlung etwas anders gehandhabt. Jedes Element in der Sammlung wird bewertet und der Operator gibt jeden Wert zurück, der als $true
ausgewertet wird.,
PS> 1,2,3,4 -eq 33
Dies funktioniert immer noch korrekt in einer if
Anweisung. So wird ein Wert von Ihrem Operator zurückgegeben, dann diewhole Anweisung ist $true
.
$array = 1..6if ( $array -gt 3 ){ # do something}
Hier versteckt sich eine kleine Falle in den Details, auf die ich hinweisen muss. Wenn Sie den Operator -ne
auf diese Weise verwenden, ist es einfach, die Logik fälschlicherweise rückwärts zu betrachten. Die Verwendung von -ne
mit acollection gibt $true
wenn ein Element in der Sammlung nicht mit Ihrem Wert übereinstimmt.,
PS> 1,2,3 -ne 4123
Dies mag wie ein cleverer Trick aussehen, aber wir haben Operatoren -contains
und -in
, die dies mehr handhabeneffektiv. Und -notcontains
macht das, was Sie erwarten.
– enthält
Der Operator -contains
überprüft die Auflistung auf Ihren Wert. Sobald es eine Übereinstimmung findet, kehrt es $true
.
$array = 1..6if ( $array -contains 3 ){ # do something}
Dies ist der bevorzugte Weg, um zu sehen, ob eine Sammlung Ihren Wert enthält., Die Verwendung von Where-Object
(oder-eq
) durchläuft jedes Mal die gesamte Liste und ist erheblich langsamer.,
Variationen:
-
-contains
Groß-und Kleinschreibung -
-icontains
Groß-und Kleinschreibung -
-ccontains
Groß-und Kleinschreibung -
-notcontains
Groß-und Kleinschreibung -
-inotcontains
case-insensitive not matched -
-cnotcontains
case-sensitive not matched
-in
Der -in
Operator ist genau wie der -contains
operator außer der Sammlung befindet sich auf der rechten Seite.,
$array = 1..6if ( 3 -in $array ){ # do something}
Variations:
-
-in
case-insensitive match -
-iin
case-insensitive match -
-cin
case-sensitive match -
-notin
case-insensitive not matched -
-inotin
case-insensitive not matched -
-cnotin
case-sensitive not matched
Logical operators
Logical operators are used to invert or combine other expressions.,
– nicht
Der Operator -not
wechselt einen Ausdruck von $false
zu $true
oder von $true
zu $false
. Hier ist ein Beispiel, in dem wir eine Aktion ausführen möchten, wenn Test-Path
$false
.
if ( -not ( Test-Path -Path $path ) )
Die meisten Operatoren, über die wir gesprochen haben, haben eine Variation, bei der Sie den Operator -not
nicht verwenden müssen. Aber es gibt immer noch Zeiten, in denen es nützlich ist.
!, operator
Sie können !
als Alias für -not
verwenden.
if ( -not $value ){}if ( !$value ){}
Möglicherweise wird !
häufiger von Personen verwendet, die aus anderen Sprachen wie C#stammen. Ich ziehe es vor, es einzutippen, weil ich es schwer zu sehen finde, wenn ich mir schnell meine Skripte ansehe.
– und
Sie können Ausdrücke mit dem Operator -and
kombinieren. Wenn Sie dies tun, müssen beide Seiten$true
, damit der gesamte Ausdruck $true
.,
if ( ($age -gt 13) -and ($age -lt 55) )
In diesem Beispiel muss $age
13 oder älter für die linke Seite und weniger als 55 für die rechte Seite sein. Ich habe zusätzliche Klammern hinzugefügt, um es in diesem Beispiel klarer zu machen, aber sie sind optional, solange der Ausdruck einfach ist. Hier ist das gleiche Beispiel ohne Sie.
if ( $age -gt 13 -and $age -lt 55 )
Auswertung erfolgt von Links nach rechts. Wenn das erste Element mit $false
ausgewertet wird, wird es vorzeitig beendet und führt nicht den richtigen Vergleich durch. Dies ist praktisch, wenn Sie sicherstellen müssen, dass ein Wert vorhanden ist, bevor Sie ihn verwenden., Zum Beispiel gibt Test-Path
einen Fehler aus, wenn Sie ihm einen $null
Pfad geben.
if ( $null -ne $path -and (Test-Path -Path $path) )
– oder
Mit der -or
können Sie zwei Ausdrücke angeben und $true
wenn einer von ihnen$true
.
if ( $age -le 13 -or $age -ge 55 )
Genau wie beim Operator -and
erfolgt die Auswertung von links nach rechts., Außer dass, wenn der erste Teil $true
, dann ist die ganze Anweisung $true
und es verarbeitet nicht den Rest derexpression.
Beachten Sie auch, wie die Syntax für diese Operatoren funktioniert. Sie benötigen zwei separate Ausdrücke. Ich habe gesehen, dass Benutzer versuchen, so etwas zu tun $value -eq 5 -or 6
ohne ihren Fehler zu bemerken.
– xor exklusiv oder
Dieser ist etwas ungewöhnlich. -xor
erlaubt nur einen Ausdruck zu $true
auszuwerten., Wenn also beide Elemente $false
oder beide Elemente $true
, lautet der gesamte Ausdruck $false
. Eine andere Möglichkeit, dies zu betrachten, ist der Ausdruck ist nur $true
wenn die Ergebnisse des Ausdrucks unterschiedlich sind.
Es ist selten, dass jemand diesen logischen Operator jemals verwenden würde, und ich kann mir kein gutes Beispiel als towhy ausdenken, das ich jemals verwenden würde.
Bitweise Operatoren
Bitweise Operatoren führen Berechnungen für die Bits innerhalb der Werte durch und erzeugen einen neuen Wert als theresult., Das Unterrichten von bitweisen Operatoren geht über den Rahmen dieses Artikels hinaus, aber hier ist die Liste thethem.
-
-band
binär UND -
-bor
binär ODER -
-bxor
binär exklusiv ODER -
-bnot
binär NICHT -
-shl
shift left -
-shr
shift right
PowerShell-Ausdrücke
Wir können normale PowerShell in der condition-Anweisung verwenden.,
if ( Test-Path -Path $Path )
Test-Path
gibt $true
oder $false
zurück, wenn es ausgeführt wird. Dies gilt auch für Befehle, die zurückgebenandere Werte.
if ( Get-Process Notepad* )
Es wird ausgewertet $true
wenn ein zurückgegebener Prozess vorhanden ist, und $false
wenn es etwas gibt., Es ist vollkommen gültig, Pipeline-Ausdrücke oder andere PowerShell-Anweisungen wie diese zu verwenden:
if ( Get-Process | Where Name -eq Notepad )
Diese Ausdrücke können miteinander kombiniert werden mit den Operatoren -and
und -or
, aber möglicherweise müssen Sie Klammern verwenden, um sie in Unterausdrücke aufzuteilen.
if ( (Get-Process) -and (Get-Service) )
Die Überprüfung auf $null
Ohne Ergebnis oder $null
Wert ergibt $false
in der if
Anweisung., Wenn Sie speziell nach $null
, ist es eine bewährte Methode, die $null
auf der linken Seite zu platzieren.
if ( $null -eq $value )
Es gibt einige Nuancen beim Umgang mit $null
Werten in PowerShell. Wenn Sie daran interessiert sind, tiefer zu tauchen, habe ich einen Artikel über alles, was Sie über $null wissen wollten.
Variablenzuweisung
Ich hätte fast vergessen, diese hinzuzufügen, bis Prasoon Karunan V mich daran erinnerte.,
if ($process=Get-Process notepad -ErrorAction ignore) {$process} else {$false}
Normalerweise wird der Wert beim Zuweisen eines Werts zu einer Variablen nicht an die Pipeline orconsole übergeben. Wenn Sie eine Variablenzuweisung in einem Unterausdruck ausführen, wird sie an thepipeline übergeben.
PS> $first = 1PS> ($second = 2)2
Sehen Sie, wie die$first
Zuordnung keine Ausgabe hat und die$second
Zuordnung tut? Wenn eine Zuweisung in einer if
– Anweisung erfolgt, wird sie genau wie die obige $second
– Zuweisung ausgeführt., Hier ist ein sauberes Beispiel, wie Sie es verwenden können:
if ( $process = Get-Process Notepad* ){ $process | Stop-Process}
Wenn $process
einen Wert zugewiesen wird, lautet die Anweisung $true
und $process
wird gestoppt.
Stellen Sie sicher, dass Sie dies nicht mit -eq
verwechseln, da dies keine Gleichheitsprüfung ist. Dies ist eine moreobscure-Funktion, die die meisten Menschen nicht erkennen, funktioniert auf diese Weise.,
Alternativer Ausführungspfad
Mit der if
– Anweisung können Sie eine Aktion nicht nur angeben, wenn die Anweisung $true
ist, sondern auch, wenn sie $false
ist. Hier kommt die else
Anweisung ins Spiel.
else
Dieelse
Anweisung ist immer der letzte teil derif
anweisung, wenn verwendet.
In diesem Beispiel überprüfen wir die $path
, um sicherzustellen, dass es sich um eine Datei handelt. Wenn wir die Datei finden, verschieben wir sie. Wenn nicht, schreiben wir eine Warnung., Diese Art der Verzweigungslogik ist sehr verbreitet.
Verschachtelt if
Dieif
undelse
Anweisungen nehmen einen Skriptblock an, sodass wir jeden PowerShell-Befehl darin platzieren können, einschließlich einer anderenif
Anweisung. Dadurch können Sie viel kompliziertere Logik verwenden.
In diesem Beispiel testen wir zuerst den Happy Path und ergreifen dann Maßnahmen. Wenn dies fehlschlägt, tun wireine weitere Überprüfung und um dem Benutzer detailliertere Informationen zur Verfügung zu stellen.
elseif
Wir beschränken uns nicht nur auf eine einzige bedingte Prüfung., Wir können if
und else
statementstogether anstatt sie mit der elseif
Anweisung zu verschachteln.
Die Ausführung erfolgt von oben nach unten. Die Anweisung top if
wird zuerst ausgewertet. Wenn das $false
ist, geht es zum nächsten elseif
oder else
in der Liste. Diese letzte else
ist die Default-Aktion, wenn keiner der anderen $true
zurückgibt.,
switch
An dieser Stelle muss ich die switch
Anweisung erwähnen. Es bietet eine alternative Syntax für doingmultiple Vergleiche mit einem Wert. Mit der switch
geben Sie einen Ausdruck an und dieses Ergebnis wird mit mehreren verschiedenen Werten verglichen. Wenn einer dieser Werte übereinstimmt, wird der übereinstimmende Codeblock verfolgt. Schauen Sie sich dieses Beispiel an:
$itemType = 'Role'switch ( $itemType ){ 'Component' { 'is a component' } 'Role' { 'is a role' } 'Location' { 'is a location' }}
Es gibt drei mögliche Werte, die mit der $itemType
übereinstimmen können. In diesem Fall stimmt es mit Role
., Ich habe ein einfaches Beispiel verwendet, um Ihnen einen Einblick in den Operator switch
zu geben. Ich Rede moreabout alles, was Sie schon immer wissen wollten, über die switch-Anweisung in einem anderen Artikel.
Pipeline
Die Pipeline ist ein einzigartiges und wichtiges Merkmal von PowerShell. Jeder Wert, der nicht suppressedor einer Variablen zugewiesen ist, wird in die Pipeline eingefügt. Die if
bietet uns eine Möglichkeit, die Pipeline auf eine Weise zu nutzen, die nicht immer offensichtlich ist.,
$discount = if ( $age -ge 55 ){ Get-SeniorDiscount}elseif ( $age -le 13 ){ Get-ChildDiscount}else{ 0.00}
Jeder Skriptblock platziert die Ergebnisse der Befehle oder den Wert in die Pipeline. Dann weisen wir zudas Ergebnis derif
Anweisung an die$discount
Variable. Dieses Beispiel könnte diese Werte genauso einfach der Variablen $discount
direkt in jedem Scriptblock zugewiesen haben. Ich kann nicht sagen, dass ich dies häufig mit der Anweisung if
verwende, aber ich habe ein Beispiel, in dem ich dies kürzlich verwendet habe.,
Array inline
Ich habe eine Funktion namens Invoke-SnowSQL, die eine ausführbare Datei mit mehreren Befehls-linearguments startet. Hier ist ein Clip von dieser Funktion, in dem ich das Array von Argumenten erstelle.
Die Variablen und $Path
sind Parameter der Funktion, die vom Endbenutzer bereitgestellt werden.Ich bewerte sie inline innerhalb der Initialisierung meines Arrays aus. Wenn wahr ist, dann fallen diese valuesfall in die $snowSqlParam
an der richtigen Stelle. Gleiches gilt für die Variable $Path
.,
Vereinfachen Sie komplexe Operationen
Es ist unvermeidlich, dass Sie in eine Situation geraten, in der viel zu viele Vergleiche zu überprüfen sind, und IhreIf
Anweisung scrollt weit von der rechten Seite des Bildschirms.
Sie können schwer zu lesen sein und machen Sie anfälliger für Fehler. Es gibt ein paar Dinge, die wir dagegen tun können.
Zeilenfortsetzung
Es gibt einige Operatoren in PowerShell, mit denen Sie Ihren Befehl in die nächste Zeile einfügen können., Die logicaloperators -and
und -or
sind gute Operatoren, wenn Sie Ihren Ausdruck in mehrere Zeilen aufteilen möchten.
Da ist noch viel los, aber jedes Stück auf seine eigene Linie zu setzen macht einen großen Unterschied.Ich benutze dies im Allgemeinen, wenn ich mehr als zwei Vergleiche erhalte oder wenn ich nach rechts scrollen muss, um eine der Logik zu lesen.
Vorberechnungsergebnisse
Wir können diese Anweisung aus der if
Anweisung nehmen und nur das Ergebnis überprüfen.
Das fühlt sich einfach viel sauberer an als im vorherigen Beispiel., Sie haben auch die Möglichkeit, einen variablen Namen zu verwenden, der erklärt, was Sie wirklich überprüfen. Dies ist auch ein Beispiel für selbstdokumentierender Code, der unnötige Kommentare speichert.
Mehrere if-Anweisungen
Wir können dies in mehrere Anweisungen aufteilen und sie einzeln überprüfen. In diesem Fall verwenden wir aflag oder eine tracking-variable, um die Ergebnisse zu kombinieren.
Ich musste die Logik invertieren, damit die Flag-Logik korrekt funktioniert. Jede Auswertung ist eine individuelleif
Anweisung., Der Vorteil davon ist, dass Sie beim Debuggen genau sagen können, was die Logik tut. Ich konnte gleichzeitig viel bessere Ausführlichkeit hinzufügen.
Der offensichtliche Nachteil ist, dass es so viel mehr code zu schreiben. Der Code ist komplexer zu betrachten, da er eine einzelne Logikzeile benötigt und in 25 oder mehr Zeilen explodiert.
Mit den Funktionen
können wir auch die gesamte Validierungslogik in eine Funktion verschieben. Schau dir an, wie sauber das bei aglance aussieht.,
if ( Test-SecureDriveConfiguration -ADUser $user ){ # do something}
Sie müssen immer noch die Funktion erstellen, um die Validierung durchzuführen, aber es erleichtert das Arbeiten mit diesem Code erheblich. Es macht diesen Code einfacher zu testen. In Ihren Tests können Sie den Aufruf vonTest-ADDriveConfiguration
verspotten und Sie benötigen nur zwei Tests für diese Funktion. Eine, bei der$true
und eine, bei der $false
. Das Testen der anderen Funktion ist einfacher, weil sie so klein ist.
Der Hauptteil dieser Funktion könnte immer noch der Einzeiler sein, mit dem wir begonnen haben, oder die explodierte Logik, die wir im letzten Abschnitt verwendet haben., Dies funktioniert gut für beide Szenarien und ermöglicht es Ihnen, diese Implementierung später einfach zu ändern.
Fehlerbehandlung
Eine wichtige Verwendung der if
– Anweisung besteht darin, nach Fehlerbedingungen zu suchen, bevor Sie intoerrors ausführen. Ein gutes Beispiel ist zu überprüfen, ob ein Ordner bereits vorhanden ist, bevor Sie versuchen, ihn zu erstellen.
if ( -not (Test-Path -Path $folder) ){ New-Item -Type Directory -Path $folder}
Ich möchte sagen, wenn Sie eine Ausnahme erwarten, dann ist es nicht wirklich eine Ausnahme. Überprüfen Sie also Ihre Werte und validieren Sie Ihre Bedingungen, wo Sie können.,
Wenn Sie ein wenig mehr in die tatsächliche Ausnahmebehandlung eintauchen möchten, habe ich einen Artikel über alles, was Sie jemals über Ausnahmen wissen wollten.
Letzte Worte
Die if
– Anweisung ist eine so einfache Anweisung, aber ein grundlegendes Stück PowerShell. Sie werden dies in fast jedem Skript, das Sie schreiben, mehrmals verwenden. Ich hoffe, Sie haben ein besseres Verständnis als vorher.