Convert-String
Formatiert eine Zeichenfolge so, dass sie Beispielen entspricht.
Syntax
Convert-String
[-Example <System.Collections.Generic.List`1[System.Management.Automation.PSObject]>]
-InputObject <String>
[<CommonParameters>]
Beschreibung
Das Cmdlet Convert-String formatiert eine Zeichenfolge so, dass sie dem Format der Beispiele entspricht.
Beispiele
Beispiel 1: Konvertieren des Formats einer Zeichenfolge
"Mu Han", "Jim Hance", "David Ahs", "Kim Akers" | Convert-String -Example "Ed Wilson=Wilson, E."
Han, M.
Hance, J.
Ahs, D.
Akers, K.
Mit dem ersten Befehl wird ein Array erstellt, das Vor- und Nachnamen enthält.
Der zweite Befehl formatiert die Namen entsprechend dem Beispiel. Der Nachname wird in der Ausgabe an erster Stelle platziert, gefolgt von einem Initialen.
Beispiel 2: Vereinfachen des Formats einer Zeichenfolge
$composers = @("Johann Sebastian Bach", "Wolfgang Amadeus Mozart", "Frederic Francois Chopin", "Johannes Brahms")
$composers | Convert-String -Example "first middle last=last, first"
Bach, Johann
Mozart, Wolfgang
Chopin, Frederic
Brahms, Johannes
Mit dem ersten Befehl wird ein Array erstellt, das Vor-, Mittel- und Nachnamen enthält. Beachten Sie, dass der letzte Eintrag keinen zweiten Namen hat.
Der zweite Befehl formatiert die Namen entsprechend dem Beispiel. Der Nachname wird in der Ausgabe an erster Stelle platziert, gefolgt vom Vornamen. Alle vornamen wurden entfernt; Der Eintrag ohne zweiten Namen wird ordnungsgemäß behandelt.
Beispiel 3: Ausgabeverwaltung, wenn Zeichenfolgen nicht dem Beispiel entsprechen
$composers = @("Johann Sebastian Bach", "Wolfgang Amadeus Mozart", "Frederic Francois Chopin", "Johannes Brahms")
$composers | Convert-String -Example "first middle last=middle, first"
Sebastian, Johann
Amadeus, Wolfgang
Francois, Frederic
Mit dem ersten Befehl wird ein Array erstellt, das Vor-, Mittel- und Nachnamen enthält. Beachten Sie, dass der letzte Eintrag keinen zweiten Namen hat.
Der zweite Befehl formatiert die Namen entsprechend dem Beispiel. Der zweite Name wird in der Ausgabe an erster Stelle platziert, gefolgt vom Vornamen. Der letzte Eintrag in $Composers wird übersprungen, da er nicht mit dem Beispielmuster übereinstimmt: Er hat keinen zweiten Namen.
Beispiel 4: Vorsicht bei Schönheitsräumen
$composers = @("Antonio Vivaldi", "Richard Wagner ", "Franz Schubert", "Johannes Brahms ")
$composers | Convert-String -Example "Patti Fuller = Fuller, P."
Wagner, R.
Brahms, J.
Mit dem ersten Befehl wird ein Array von Vor- und Nachnamen erstellt. Beachten Sie, dass das zweite und vierte Element nach dem Nachnamen über ein zusätzliches nachgestelltes Leerzeichen verfügt.
Mit dem zweiten Befehl werden alle Zeichenfolgen konvertiert, die dem Beispielmuster entsprechen: Wort, Leerzeichen, Wort und abschließender nachgestellter Leerraum, all dies vor dem Gleichheitszeichen. Beachten Sie außerdem den führenden Bereich in der Ausgabe.
Beispiel 5: Formatieren von Prozessinformationen mit mehreren Mustern
$ExamplePatterns = @(
@{before='"Hello","World"'; after='World: Hello'},
@{before='"Hello","1"'; after='1: Hello'},
@{before='"Hello-World","22"'; after='22: Hello-World'},
@{before='"hello world","333"'; after='333: hello world'}
)
$Processes = Get-Process | Select-Object -Property ProcessName, Id | ConvertTo-Csv -NoTypeInformation
$Processes | Convert-String -Example $ExamplePatterns
Id: ProcessName
4368: AGSService
8896: Amazon Music Helper
4420: AppleMobileDeviceService
...
11140: git-bash
0: Idle
...
56: Secure System
...
13028: WmiPrvSE
2724: WUDFHost
2980: WUDFHost
3348: WUDFHost
$ExamplePatterns definiert anhand von Beispielen verschiedene erwartete Muster in den Daten.
Das erste Muster, @{before='"Hello","World"'; after='World: Hello'}
, lautet wie folgt: Erwarten Sie Zeichenfolgen, in denen ein Wort in doppelte Anführungszeichen eingeschlossen wird, dann ein Kommaund dann das zweite und letzte Wort, das in Anführungszeichen eingeschlossen ist;ohne Leerzeichen in der Zeichenfolge. In der Ausgabe: Platzieren Sie zuerst das zweite Wortohne Anführungszeichen, dann ein einzelnes Leerzeichen und dann das erste Wort ohne Anführungszeichen.
Das zweite Muster , @{before='"Hello","1"'; after='1: Hello'}
, lautet wie folgt: Erwarten Sie Zeichenfolgen, in denen ein Wort in doppelte Anführungszeichen eingeschlossen wird, dann ein Kommaund dann eine Zahl, die in Anführungszeichen eingeschlossen ist;ohne Leerzeichen in der Zeichenfolge. In der Ausgabe: Platzieren Sie zuerst die Zahlohne Anführungszeichen, dann ein einzelnes Leerzeichen und dann das Wort ohne Anführungszeichen.
Das dritte Muster , @{before='"Hello-World","22"'; after='22: Hello-World'}
, liest sich wie folgt: Erwarten Sie Zeichenfolgen, bei denen zwei Wörter mit einem Bindestrich dazwischen indoppelte Anführungszeichen, dann ein Komma und dann eine Zahl in Anführungszeichen eingeschlossen werden;ohne Leerzeichen zwischen dem Komma und dem dritten doppelten Anführungszeichen.Auf der Ausgabe: Platzieren Sie zuerst die Zahl ohne Anführungszeichen, dann ein einzelnes Leerzeichenund dann die Bindestrichwörter ohne Anführungszeichen.
Das vierte und letzte Muster, @{before='"hello world","333"'; after='333: hello world'}
, liest sich wie folgt: Erwarten Sie Zeichenfolgen, bei denen zwei Wörter mit einem Leerzeichen dazwischen indoppelte Anführungszeichen, dann ein Komma und dann eine Zahl in Anführungszeichen eingeschlossen werden;ohne Leerzeichen zwischen dem Komma und dem dritten doppelten Anführungszeichen.Auf der Ausgabe: Platzieren Sie zuerst die Zahl ohne Anführungszeichen, dann ein einzelnes Leerzeichenund dann die Wörter mit dem Leerzeichen dazwischen, ohne Anführungszeichen.
Der erste Befehl ruft alle Prozesse mithilfe des Cmdlets Get-Process ab. Der Befehl übergibt sie an das Cmdlet Select-Object, das den Prozessnamen und die Prozess-ID auswählt. Am Ende der Pipeline konvertiert der Befehl die Ausgabe mithilfe des Cmdlets ConvertTo-Csv in kommagetrennte Werte ohne Typinformationen. Der Befehl speichert die Ergebnisse in der variablen $Processes . $Processes enthält jetzt Prozessnamen und PID.
Der zweite Befehl gibt eine Beispielvariable an, die die Reihenfolge der Eingabeelemente ändert. Der Befehl deckt jede Zeichenfolge in $Processes ab.
Hinweis Das vierte Muster besagt implizit, dass zwei oder mehr Wörter, die durch Leerzeichen getrennt sind, übereinstimmen.
Ohne das vierte Muster wird nur das erste Wort der in doppelten Anführungszeichen eingeschlossenen Zeichenfolge abgeglichen.
Parameter
-Example
Gibt eine Liste von Beispielen für das Zielformat an. Geben Sie Paare an, die durch das Gleichheitszeichen (=) getrennt sind, mit dem Quellmuster auf der linken Seite und dem Zielmuster auf der rechten Seite, wie in den folgenden Beispielen dargestellt:
-Example "Hello World=World, Hello"
-Example "Hello World=World: Hello",'"Hello","1"=1: Hello'
Hinweis Im zweiten Beispiel wird eine Liste von Mustern verwendet.
Alternativ können Sie eine Liste von Hashtabellen angeben, die Die Eigenschaften Before und After enthalten.
-Example @{before='"Hello","World"'; after='World: Hello'}, @{before='"Hello","1"'; after='1: Hello'}
Vorsicht Vermeiden Sie Die Verwendung von Leerzeichen um das Gleichheitszeichen, da sie als Teil des Musters behandelt werden.
Type: | List<T>[PSObject] |
Aliases: | E |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-InputObject
Gibt eine zu formatierende Zeichenfolge an.
Type: | String |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
Eingaben
String
Sie können Zeichenfolgen an dieses Cmdlet weiterleiten.
Ausgaben
String
Dieses Cmdlet gibt eine Zeichenfolge zurück.