Meester PowerShell Strings: Concatenatie, Opsplitsen & Meer

Snaren in PowerShell zijn waarschijnlijk het meest gebruikte gegevenstype in PowerShell. Van het weergeven van berichten, het vragen om invoer, of het verzenden van gegevens naar bestanden, het is bijna onmogelijk om scripts te schrijven zonder dat snaren erbij betrokken zijn.

In dit artikel zult u leren dat snaren niet alleen zijn om te lezen en weer te geven. Ze kunnen ook worden gemanipuleerd om te passen bij het doel van welke taak u ook maar het script voor schrijft. Zoals het vervangen van karakters of hele woorden, het aaneenschakelen van snaren om een nieuwe snaar te vormen, of zelfs het splitsen van één snaar in meerdere snaren.

Snaren Begrijpen

Volgens de .NET-definitie van een snaar – “Een snaar is een opeenvolgende verzameling van karakters die wordt gebruikt om tekst te vertegenwoordigen”. Samenvattend, zolang er een reeks van karakters een tekst vormt, is er een snaar.

Definiëren van System Strings in PowerShell

Snaren worden gedefinieerd door een reeks karakters te omsluiten met enkele of dubbele aanhalingstekens. Hieronder zijn voorbeelden van een snaar.

PS> 'Hello PowerShell - Today is $(Get-Date)'PS> "Hello PowerShell - Today is $(Get-Date)"

Snaren zijn eigenlijk System.Strings in .NET.

Zoals u kunt zien in het bovenstaande voorbeeld, is de eerste snaar omsloten met een enkel aanhalingsteken, en de tweede snaar is omsloten met een dubbel aanhalingsteken. Als u zich afvraagt, het enige verschil tussen de twee is dat snaren in dubbele aanhalingstekens ondersteuning bieden voor snaaruitbreiding, terwijl een enkel aanhalingsteken alleen letterlijke snaren zal vertegenwoordigen.

Om het concept van enkel aanhalingsteken vs. dubbel aanhalingsteken te bevestigen, wanneer u beide snaren uit het bovenstaande voorbeeld plakt in PowerShell.

De onderstaande schermafbeelding toont aan dat een enkelvoudige aanhalingsteken (”) de exacte letterlijke string retourneert die gedefinieerd is. Terwijl de dubbele aanhalingstekens de string retourneren met het expressieresultaat van de Get-Date cmdlet.

Single Quote vs. Double-Quote String Output

Het resultaat hierboven laat zien hoe het gebruik van enkele of dubbele aanhalingstekens wordt onderscheiden bij het definiëren van strings.

Het String Object

Zoals vermeld in de vorige sectie, is de verzameling karakters die een tekst vormen een string. De resulterende waarde van de string is het String-object. Het String-object is een .NET-object van het type [System.String].

En aangezien System.String een object is, heeft het eigenschappen die je kunt benaderen met behulp van de Get-Member cmdlet. Hieronder voegen we een variabele in binnen een string met dubbele aanhalingstekens.

PS> "Hello PowerShell - Today is $(Get-Date)" | Get-Member=

De onderstaande schermafbeelding toont de TypeName en de gedeeltelijke lijst van eigenschappen van het String-object.

String Object properties

PowerShell-strings concatenaten

String-concatenatie wordt beschreven als het samenvoegen van twee of meer strings, waarbij in feite één string-object wordt gecreëerd uit meerdere afzonderlijke string-objecten. Er zijn verschillende methoden in PowerShell om strings te concatenaten. Elke methode is anders, en welke je gebruikt hangt af van hoe je van plan bent string-concatenatie te implementeren.

A typical example of using string concatenation in the real world is Active Directory user creation. Perhaps you’re creating a user creation script that takes the first name, last name, and department values from a list.

Met behulp van stringconcatenatie kunt u de standaardnaamconventie formuleren voor de naam, weergavenaam, gebruikersnaam en e-mailadres. Voor dit voorbeeld zul je werken met de onderstaande strings. Kopieer deze code hieronder en plak het in je PowerShell-sessie.

$domain = 'contoso.com'
$firstname = 'Jack'
$lastname = 'Ripper'
$department = 'Health'

Met behulp van de bovenstaande voorbeeldvariabelen is het doel om de volgende waarden af te leiden door strings samen te voegen.

  • Naam = voornaam achternaam
  • Weergavenaam = voornaam achternaam (afdeling)
  • SamAccountName = voornaam.achternaam
  • Emailadres = [email protected]

In de volgende secties zullen de bovenstaande waarden worden gemaakt met behulp van de verschillende methoden voor stringconcatenatie die beschikbaar zijn in PowerShell.

Laten we beginnen!

Met behulp van de PowerShell-stringsconcatenatie-operator

Programmeertalen hebben hun eigen stringsconcatenatie-operator die wordt gebruikt om strings samen te voegen. Bijvoorbeeld, in Visual Basic is de concatenatiemethode het ampersandteken (&). PowerShell heeft ook zijn eigen concatenatiemethode, namelijk het plusteken (+).

Met de stringconcatenatie-operator kunt u strings samenvoegen met de onderstaande code.

## Naam
$firstname + ' ' + $lastname
## Weergavenaam
$firstname + ' ' + $lastname + ' (' + $department + ')'
## SamAccountName
$firstname + '.' + $lastname
## E-mailadres
$firstname + '.' + $lastname + '@' + $domain

Met behulp van PowerShell String Expansion

Het gebruik van string-expansie is mogelijk de methode die resulteert in de kortste code bij het concaten van strings. Zoals blijkt uit de onderstaande code, is alles wat nodig is om de strings zo te ordenen als ze moeten verschijnen en ze in dubbele aanhalingstekens te plaatsen.

# Gebruik van String Expansion
## Naam
"$firstname $lastname"
## Weergavenaam
"$firstname $lastname ($department)"
## SamAccountName
"$firstname.$lastname"
## E-mailadres
"$firstname.$lastname@$domain"

Vervolgens interpreteert en verwerkt PowerShell de string-expansie binnen de dubbele aanhalingstekens om de geconcateneerde string als resultaat weer te geven. U kunt hieronder verwijzen naar de voorbeelduitvoer.

Using String Expansion

Gebruik van de PowerShell Format-operator

De format-operator (-f) wordt voornamelijk gebruikt voor samengestelde opmaak. Het is belangrijk om te onthouden dat er bij deze methode drie delen zijn bij het gebruik van -f.

Zie de derde regel van de onderstaande code. De "{0} {1}" vertegenwoordigt de opmaak en plaatshouders. De cijfers tussen de accolades geven de index aan van de string in de collectie die op die plaats moet worden weergegeven. De aanhalingstekens kunnen enkelvoudig of dubbel zijn.

De collectie van strings als invoer in dit voorbeeld wordt vertegenwoordigd door $voornaam,$achternaam. Dit betekent dat de index van de variabele $voornaam 0 is, terwijl die van $achternaam 1 is.

Eindelijk is -f de plek tussen de aanduiding en de verzameling strings die worden vertegenwoordigd door (-f).

## Naam
"{0} {1}" -f $firstname,$lastname
## Weergavenaam
"{0} {1} ({2})" -f $firstname,$lastname,$department
## SamAccountNaam
"{0}.{1}" -f $firstname,$lastname
## E-mailadres
"{0}.{1}@{2}" -f $firstname,$lastname,$domain

De bovenstaande code resulteert in de onderstaande resultaten.

Using the Format Operator

Gebruik van de PowerShell -Join-operator

De -Join-operator kan worden gebruikt om strings op twee manieren samen te voegen tot één string.

De eerste manier om -Join te gebruiken, is door het te volgen met de array van strings die je wilt concatenaten. De -Join-operator biedt geen optie om een scheidingsteken toe te voegen. Alle strings in de array worden aan elkaar geplakt zonder iets ertussen.

-Join <String[]>

De tweede manier om de -Join-operator te gebruiken, is door het scheidingsteken op te geven. De array van strings wordt samengevoegd, maar het opgegeven scheidingsteken wordt tussen elke string ingevoegd.

<String[]> -Join <Delimiter>

Terugkomend op het doel van het concatenaten van strings, toont de onderstaande code hoe de -Join-operator wordt gebruikt om strings samen te voegen.

## Naam
$firstname, $lastname -join ' '
## Weergavenaam
$firstname,$lastname,"($department)" -join ' '
## SamAccountNaam
-join ($firstname,'.',$lastname)
## E-mailadres
-join ($firstname,'.',$lastname,'@',$domain)

Wanneer je de bovenstaande voorbeeldcode uitvoert in PowerShell, zou je een vergelijkbare uitvoer verwachten als degene die hieronder wordt getoond.

Using the PowerShell Join Operator

De .NET String.Format() Methode

De .NET String.Format methode is het .NET equivalent van de PowerShell Formaat Operator. Het werkt hetzelfde als de formaatoperator waarbij de indeling en de plaatshouders moeten worden gespecificeerd.

## Naam
[string]::Format("{0} {1}",$firstname,$lastname)
## Weergavenaam
[string]::Format("{0} {1} ({2})",$firstname,$lastname,$department)
## SamAccountNaam
[string]::Format("{0}.{1}",$firstname,$lastname)
## E-mailadres
[string]::Format("{0}.{1}@{2}",$firstname,$lastname,$domain)

De onderstaande schermafbeelding toont de String.Format Methode in actie.

The .NET String.Format Method

De .NET String.Concat() Methode

Nog een methode om strings samen te voegen is door de .Net String.Concat Methode te gebruiken. De .NET String.Concat Methode is het .NET equivalent van de PowerShell String Concatenation Operator (+). Maar in plaats van het + teken te gebruiken om strings samen te voegen, kun je alle strings binnen de methode toevoegen zoals dit – [string]::Concat(string1,string2...).

## Naam
[string]::Concat($firstname,' ',$lastname)
## Weergavenaam
[string]::Concat($firstname,' ',$lastname,' (',$department,')')
## SamAccountName
[string]::Concat($firstname,'.',$lastname)
## E-mailadres
[string]::Concat($firstname,'.',$lastname,'@',$domain)

De onderstaande schermafbeelding toont het resultaat van het aanroepen van de .NET String.Concat methode. U kunt zien dat PowerShell string1, string2 heeft samengevoegd.

Using the .NET String.Concat Method

De .NET String.Join() Methode

De .NET String.Join methode is het .NET tegenhanger van de PowerShell Join Operator (-join). Het formaat voor deze methode is [string]::Join(<scheidingsteken>,<string1>,<string2>,...).

Het eerste item binnen de -Join methode is altijd het scheidingsteken. Daarna zijn de volgende itemwaarden de strings die u wilt samenvoegen. Zie het onderstaande voorbeeldcode. Onthoud, het eerste item is altijd het scheidingsteken. Als u geen scheidingsteken wilt toevoegen, kunt u dit specificeren als —> ''.

## Naam
[string]::Join(' ',$firstname,$lastname)
## Weergavenaam
[string]::Join(' ',$firstname,$lastname,"($department)")
## SamAccountName
[string]::Join('',$firstname,'.',$lastname)
## E-mailadres
[string]::Join('',$firstname,'.',$lastname,'@',$domain)
The .NET String.Join Method

PowerShell Strings Opsplitsen

U heeft verschillende methoden gezien om strings samen te voegen in de vorige sectie. In deze sectie leert u over de verschillende manieren om PowerShell te gebruiken om strings te splitsen. Het splitsen van strings is de omgekeerde actie van concatenatie.

Je kunt strings in PowerShell op twee verschillende manieren splitsen – de split()-functie/methode of de split-operator.

Strings splitsen met de split()-methode

Als je op zoek bent naar een eenvoudige manier om een string te splitsen en een array te maken, hoef je niet verder te kijken dan de split()-methode. De split()-methode is aanwezig op elk stringobject en kan een string splitsen in een array op basis van een non-regex-karakter.

Bijvoorbeeld, als je een string hebt zoals green|eggs|and|ham en je wilt een array maken zoals @('green','eggs','and','ham'), kun je deze string splitsen op het pipesymbool (|) zoals in de volgende code snippet.

$string = 'green|eggs|and|ham'
$string.split('|')

Je zult dan zien dat PowerShell de string heeft gesplitst in de gewenste array met het pipesymbool.

De split()-methode is een eenvoudige manier om strings te splitsen, maar heeft beperkingen. De split()-methode staat niet toe om strings te splitsen via reguliere expressies. Als je geavanceerdere mogelijkheden nodig hebt om een string te splitsen, zul je meer moeten leren over de split-operator.

De -split-operator

De belangrijkste operator die kan worden gebruikt om strings te splitsen in PowerShell is de -Split-operator. Met de -Split-operator worden strings standaard gesplitst tussen spaties, of met specifieke scheidingstekens.

Hieronder staat de syntax voor de -Split-operator ter referentie. Let op het verschil tussen de unaire en binaire split.

# Enkele Verdeling
-Split <String>
-Split (<String[]>)

# Binaire Verdeling
<String> -Split <Delimiter>[,<Max-substrings>[,"<Options>"]]
<String> -Split {<ScriptBlock>} [,<Max-substrings>]

In dit voorbeeld bevat de variabele $string de waarde van een enkele regel tekst. Vervolgens zal met de -Split-operator de enkele regel tekst worden opgesplitst in een PowerShell-reeks. De resulterende gesplitste string wordt opgeslagen in de variabele $split.

## Strings Opsplitsen in Substrings
# Ken een stringwaarde toe aan de variabele $string
$string = 'This sentence will be split between whitespaces'
# Split de waarde van $string en sla het resultaat op in de variabele $split
$split = -split $string
# Haal het aantal resulterende substrings op
$split.Count
# Toon de resulterende substrings
$split

Zoals je kunt zien aan het resultaat hierboven, is wat oorspronkelijk een enkele string was opgesplitst in 7 substrings. Het toont hoe PowerShell een string opsplitst in een reeks.

Het Karakter Scheidingsteken

In het vorige voorbeeld splitste de -Split-operator het enkele stringobject op in meerdere substrings zelfs zonder een scheidingsteken op te geven; dat komt doordat het standaard scheidingsteken van de -Split-operator  spatie is. Maar scheidingstekens kunnen ook karakters, strings, patronen of scriptblokken zijn.

In dit voorbeeld wordt het scheidingsteken gebruikt: de puntkomma ;.

## Strings opsplitsen in subreeksen met scheidingsteken
# Wijs een tekenreekswaarde toe aan de $string-variabele
$string = 'This;sentence;will;be;split;between;semicolons'
# Splits de waarde van de $string en sla het resultaat op in de $split-variabele
$split = $string -split ";"
# Krijg het aantal resulterende subreeksen
$split.Count
# Toon de resulterende subreeksen
$split

Wanneer je de bovenstaande code test in PowerShell, krijg je het onderstaande resultaat.

Splitting a String into Substrings with Character Delimiter

Je merkt op uit de bovenstaande output dat het scheidingsteken geheel werd weggelaten uit de resulterende subreeksen.

Als, om wat voor reden dan ook, je het scheidingsteken wilt behouden, kan het scheidingsteken tussen haakjes worden geplaatst.

$split = $string -split "(;)"
$split.Count
$split

Na het aanpassen van het splitsings-scheidingsteken, zoals hierboven getoond, zou het uitvoeren hiervan het onderstaande resultaat opleveren.

Splitting a string on semicolon

Het bovenstaande resultaat toont dat de scheidingsteken niet worden weggelaten en worden meegeteld in de resulterende subreeksen.

Het tekenreeks-scheidingsteken

Reeksen kunnen ook worden gesplitst door een andere tekenreeks als scheidingsteken te gebruiken. In dit voorbeeld wordt de tekenreeks “dag” gebruikt als scheidingsteken.

$daysOfTheWeek= 'monday,tuesday,wednesday,thursday,friday,saturday,sunday'
$daysOfTheWeek -split "day"

Het scriptblok-scheidingsteken

A scriptBlock as the delimiter enables the -Split operator to perform custom or complex splitting of strings.

In de vorige voorbeelden wordt het scheidingsteken of de tekenreeks gebruikt om de reeksen te splitsen. Met het gebruik van een scriptblok kun je een expressie maken die effectief meer dan één scheidingsteken gebruikt.

Het onderstaande voorbeeld gebruikt de expressie {$PSItem -eq 'e' -or $PSItem -eq 'y'} wat betekent dat de string wordt gesplitst als het binnenkomende karakter 'e' of 'a' is.

$daysOfTheWeek= 'monday,tuesday,wednesday,thursday,friday,saturday,sunday'
$daysOfTheWeek -split {$PSItem -eq 'e' -or $PSItem -eq 'y'}

En wanneer je deze opdracht hierboven uitvoert, zal de uitvoer substrings zijn die gesplitst zijn met de scheidingskarakters die binnen de expressie in het scriptblok zijn gespecificeerd.

Splitting a String into Substrings with a Script Block Delimiter

Dit volgende voorbeeld doet iets meer met een scriptblok. Deze keer evalueert de expressie of:

  • Het binnenkomende karakter slaagt als een geheel getal; en
  • Of de waarde hoger is dan 1

Als het resultaat van de evaluatie waar is, zal de -Split operator dat karakter gebruiken als scheidingskarakter. Ook is foutafhandeling toegevoegd om ervoor te zorgen dat de fouten worden gefilterd.

$daysOfTheWeek= 'monday1tuesday2wednesday3thursday1friday4saturday8sunday'
$daysOfTheWeek -split {
    try {
        [int]$PSItem -gt 1
    }
    catch {
        #DO NIETS
    }
}

Na het uitvoeren van de bovenstaande code, is de verwachting dat de string wordt gesplitst op de plaats waar de karakterwaarde kan worden omgezet naar een geheel getal met een waarde hoger dan 1. Hieronder wordt de verwachte uitvoer weergegeven.

Splitting a String into Substrings with a Script Block Delimiter

De RegEx-scheidingsteken

Standaard gebruikt de -Split operator RegEx om het gespecificeerde scheidingsteken te matchen. Dit betekent dat je ook RegEx kunt gebruiken als scheidingstekens voor het splitsen van strings.

In dit volgende voorbeeld bevat de tekenreeks woordtekens en niet-woordtekens. Het doel is om de tekenreeks te splitsen met behulp van niet-woordtekens. In RegEx worden niet-woordtekens gerepresenteerd door \W, terwijl woordtekens die overeenkomen met deze tekens – [a-zA-Z0-9_] – worden gerepresenteerd door \w.

$daysOfTheWeek= 'monday=tuesday*wednesday^thursday#friday!saturday(sunday'
$daysOfTheWeek -split "\W"

Begrenzing van Subtikens

Het is ook mogelijk om de -Split-operator te stoppen met het splitsen van een tekenreeks tot een aantal subtikens. De optie die kan worden gebruikt om het resultaat van de subtiken te begrenzen, is de <Max-subtikens>-parameter.

Wanneer je terugverwijst naar de -Split-syntaxis, is de <Max-subtikens>-parameter de parameter die direct volgt op de <Begrensd>-parameter. De syntaxis wordt hieronder opnieuw weergegeven ter referentie.

<String> -Split <Delimiter>[,<Max-substrings>[,"<Options>"]]

Volgens de bovenstaande syntaxis is de onderstaande voorbeeldcode gewijzigd om het aantal splitsingen/subtikens te beperken tot 3.

$daysOfTheWeek= 'monday,tuesday,wednesday,thursday,friday,saturday,sunday'
$daysOfTheWeek -split ",",3

En, het uitvoeren van de bovenstaande code resulteert in de onderstaande uitvoer. Zoals je kunt zien aan de uitvoer hieronder, werd de tekenreeks slechts in drie subtikens gesplitst. De overgebleven scheidingstekens werden overgeslagen.

Limiting the Number of Substrings starting from the first 3 matched delimiters

Nu, als je de subtikens wilt beperken, maar in omgekeerde volgorde, zou je de waarde van de <Max-subtikens>-parameter kunnen veranderen in een negatieve waarde. In dit volgende voorbeeld wordt de <Max-subtikens> veranderd naar -3.

$daysOfTheWeek= 'monday,tuesday,wednesday,thursday,friday,saturday,sunday'
$daysOfTheWeek -split ",",-3

En als gevolg van de gewijzigde code hierboven werd de tekenreeks gesplitst vanaf de laatste drie overeenkomende scheidingstekens.

Limiting the Number of Substrings starting from the last 3 matched delimiters

Het Vinden en Vervangen van Strings

In dit gedeelte leer je over de twee methoden die kunnen worden gebruikt om te zoeken naar en het uitvoeren van een vervanging van een PowerShell-string. De Replace()-methode en de -Replace-operator.

De Replace()-Methode

Het stringobject heeft ook een ingebouwde methode die kan helpen bij het uitvoeren van zoek- en vervangoperaties – de replace()-methode. De replace()-methode neemt maximaal vier overbelastingen.

De acceptabele set overbelastingen voor de replace()-methode staat hieronder vermeld.

<String>.Replace(<original>, <substitute>[, <ignoreCase>][, <culture>])

De enige verplichte overbelastingen zijn de <original> en <substitute>. De <ignoreCase> en <culture> zijn optioneel.

In het onderstaande voorbeeld zal de code alle gevallen van het komma-teken (,) vervangen door een puntkomma (;).

$daysOfTheWeek = 'monday,tuesday,wednesday,thursday,friday,saturday,sunday'
$daysOfTheWeek.Replace(',',';')

Naast het vervangen van slechts één teken, kun je ook de replace()-methode gebruiken om strings te zoeken en te vervangen. De onderstaande voorbeeldcode vervangt bijvoorbeeld het woord “dag” door “nacht”.

$daysOfTheWeek = 'monday,tuesday,wednesday,thursday,friday,saturday,sunday'
$daysOfTheWeek.Replace('day','NIGHT')
Replacing a matched string using the replace() method

De -Replace-Operator

De syntaxis voor de replace-operator wordt hieronder getoond.

<string> -replace <original>, <substitute>

Met de bovenstaande syntaxis vervangt de onderstaande voorbeeldcode het woord “dag” door “Nacht” met de -replace-operator.

$daysOfTheWeek = 'monday,tuesday,wednesday,thursday,friday,saturday,sunday'
$daysOfTheWeek -replace 'day','NIGHT'
Replacing a matched character with the -replace operator

De volgende voorbeeld gebruikt een RegEx match om strings te vervangen met de -replace operator. De code hieronder zoekt in de here-string naar de string die overeenkomt met (#. ) en vervangt ze met niets.

$daysOfTheWeek = @'
1. Line 1
2. Line 2
3. Line 3
4. Line 4
5. Line 5
'@
$daysOfTheWeek -replace "\d.\s",""
Replacing a RegEx match using -replace

Strings Extraheren uit Strings

De string object heeft een methode genaamd SubString(). De SubString() methode wordt gebruikt om strings binnen strings op specifieke locaties te extraheren. De syntaxis voor de SubString() methode wordt hieronder getoond.

<String>.SubString(<startIndex>[,<length>])

De startIndex is de positie-index waar de SubString() methode de zoekopdracht zou starten. De lengte parameter geeft het aantal karakters aan om terug te geven, te beginnen vanaf de startIndex. De lengte parameter is optioneel, en als deze niet wordt gebruikt, zal de SubString() methode alle karakters teruggeven.

Een Substring Extraheren vanaf een Startpositie en een Vaste Lengte

Het voorbeeld hieronder haalt het deel van de $guid stringwaarde op, beginnend vanaf index 9 en retourneert precies de 5 karakters die volgen.

$guid = 'e957d74d-fa16-44bc-9d72-4bea54952d8a'
$guid.SubString(9,5)

Een Substring Extraheren vanaf een Dynamische Startpositie

Dit volgende voorbeeld toont hoe je de PowerShell string lengte eigenschap kunt gebruiken om dynamisch een startindex te definiëren.

De code hieronder doet het volgende:

  • Haalt de lengte van de string object op.
  • Haalt de index van de middelste index op door de lengte te delen door 2.
  • Gebruikt het middelste indexpunt als startindex van de deelstring.
$guid = 'e957d74d-fa16-44bc-9d72-4bea54952d8a'
$guid.SubString([int]($guid.Length/2))

Aangezien de length-waarde niet is gespecificeerd, retourneerde de Substring()-methode alle tekens vanaf de startindex.

Extracting a Substring from a Dynamic Starting Position

PowerShell-strings vergelijken

Je kunt PowerShell ook gebruiken om strings te vergelijken met behulp van de ingebouwde methoden van het stringobject, zoals de methoden CompareTo(), Equals() en Contains(). Of door gebruik te maken van de vergelijkingsoperatoren van PowerShell .

Het gebruik van de methode CompareTo()

De methode CompareTo() retourneert een waarde van 0 als de twee strings dezelfde waarde hebben. Bijvoorbeeld, de onderstaande code vergelijkt twee stringobjecten.

$string1 = "This is a string"
$string2 = "This is a string"
$string1.CompareTo($string2)

En aangezien de waarden hetzelfde zijn, zou het resultaat 0 moeten zijn, zoals hieronder getoond.

Using CompareTo() method to compare strings

Het gebruik van de methode Equals() en -eq

De methode Equals() en de operator -eq kunnen worden gebruikt om te controleren of de waarde van de twee strings gelijk is.

Het onderstaande voorbeeld gebruikt de methode Equals() om de waarden van $string1 en $string2 te vergelijken.

$string1 = "This is a string"
$string2 = "This is not the same string"
$string1.Equals($string2)

De bovenstaande code zou False moeten retourneren omdat de waarden van $string1 en $string2 niet gelijk zijn aan elkaar.

Comparing strings with the Equals() method

Het volgende voorbeeld hieronder gebruikt -eq in plaats daarvan om de waarden van $string1 en $string2 te vergelijken.

$string1 = "This is a string"
$string2 = "This is not the same string"
$string1 -eq $string2

Zoals je kunt zien aan de onderstaande uitvoer, is het resultaat bij het gebruik van -eq en de methode Equal() hetzelfde.

Comparing strings with the -eq operator

Gebruik van de methode Contains()

In dit voorbeeld worden de twee strings vergeleken door te controleren of de PowerShell-string de substring van een andere string bevat.

De onderstaande code toont aan dat de waarden van $string1 en $string2 niet gelijk zijn. Echter, de waarde van $string2 is een substring van $string1.

$string1 = "This is a string 1"
$string2 = "This is a string"
$string1.Contains($string2)

Het resultaat van de bovenstaande code zou True moeten zijn, zoals hieronder getoond.

Comparing strings using the Contains() method

Verder lezen

Source:
https://adamtheautomator.com/powershell-strings/