Freigeben über


Convert-String

Formatiert eine Zeichenfolge, die mit Beispielen übereinstimmt.

Syntax

Convert-String
       [-Example <System.Collections.Generic.List`1[System.Management.Automation.PSObject]>]
       -InputObject <String>
       [<CommonParameters>]

Beschreibung

Das Cmdlet formatiert eine Zeichenfolge, die dem Format von Beispielen 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.

Der erste Befehl erstellt ein Array, das Vor- und Nachnamen enthält.

Der zweite Befehl formatiert die Namen entsprechend dem Beispiel. Er fügt den Nachnamen zuerst in die Ausgabe ein, gefolgt von einer Initiale.

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

Der erste Befehl erstellt ein Array, das Vornamen und Nachnamen enthält. Beachten Sie, dass der letzte Eintrag keinen zweiten Namen hat.

Der zweite Befehl formatiert die Namen entsprechend dem Beispiel. Er fügt den Nachnamen zuerst in die Ausgabe ein, gefolgt vom Vornamen. Alle Vornamen wurden entfernt; Der Eintrag ohne Vorname wird ordnungsgemäß behandelt.

Beispiel 3: Ausgabeverwaltung, wenn Zeichenfolgen nicht mit dem Beispiel übereinstimmen

$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

Der erste Befehl erstellt ein Array, das Vornamen und Nachnamen enthält. Beachten Sie, dass der letzte Eintrag keinen zweiten Namen hat.

Der zweite Befehl formatiert die Namen entsprechend dem Beispiel. Er fügt den zweiten Namen zuerst in die Ausgabe ein, gefolgt von dem 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.

Der erste Befehl erstellt ein Array von Vor- und Nachnamen. Beachten Sie, dass zweite und vierte Elemente nach dem Nachnamen ein zusätzliches nachgestelltes Leerzeichen aufweisen.

Mit dem zweiten Befehl werden alle Zeichenfolgen konvertiert, die dem Beispielmuster entsprechen: Wort, Leerzeichen, Wort und abschließendes nachfolgendes Leerzeichen, all dies vor dem Gleichheitszeichen(=). Beachten Sie außerdem das führende Leerzeichen 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 verschiedene erwartete Muster in den Daten anhand von Beispielen.

Das erste Muster, @{before='"Hello","World"'; after='World: Hello'}wird wie folgt gelesen:

  • Erwarten Sie Zeichenfolgen, bei denen ein Wort in doppelte Anführungszeichen eingeschlossen wird, und dann ein Komma,
  • und dann das zweite und letzte Wort in Anführungszeichen eingeschlossen;
  • ohne Leerzeichen in der Zeichenfolge. Bei der Ausgabe: Zuerst das zweite Wort platzieren,
  • ohne Anführungszeichen, dann ein einzelnes Leerzeichen und dann das erste Wort ohne Anführungszeichen.

Das zweite Muster, @{before='"Hello","1"'; after='1: Hello'}wird wie folgt gelesen:

  • Erwarten Sie Zeichenfolgen, bei denen ein Wort in doppelte Anführungszeichen eingeschlossen wird, und dann ein Komma,
  • und dann eine Zahl, die in Anführungszeichen eingeschlossen ist;
  • ohne Leerzeichen in der Zeichenfolge. Geben Sie in der Ausgabe die Nummer zuerst ein,
  • ohne Anführungszeichen, dann ein einzelnes Leerzeichen und dann das Wort, ohne Anführungszeichen.

Das dritte Muster, @{before='"Hello-World","22"'; after='22: Hello-World'}wird wie folgt gelesen:

  • Zeichenfolgen erwarten, bei denen zwei Wörter mit einem Bindestrich dazwischen eingeschlossen sind
  • doppelte Anführungszeichen, dann ein Komma und dann eine Zahl, die in Anführungszeichen eingeschlossen ist;
  • ohne Leerzeichen zwischen komma und dem dritten doppelten Anführungszeichen.
  • Platzieren Sie auf der Ausgabe die Zahl zuerst, ohne Anführungszeichen und dann ein einzelnes Leerzeichen,
  • und dann die silbentrennungen Wörter ohne Anführungszeichen.

Das vierte und letzte Muster, @{before='"hello world","333"'; after='333: hello world'}das wie folgt lautet:

  • Zeichenfolgen erwarten, bei denen zwei Wörter mit einem Leerzeichen dazwischen eingeschlossen sind
  • doppelte Anführungszeichen, dann ein Komma und dann eine Zahl, die in Anführungszeichen eingeschlossen ist;
  • ohne Leerzeichen zwischen komma und dem dritten doppelten Anführungszeichen.
  • Platzieren Sie auf der Ausgabe die Zahl zuerst, ohne Anführungszeichen und dann ein einzelnes Leerzeichen,
  • und dann die Wörter mit dem Abstand 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 in durch Trennzeichen getrennte Werte ohne Typinformationen mithilfe des Cmdlets ConvertTo-Csv. Der Befehl speichert die Ergebnisse in der $Processes Variablen. $Processes enthält jetzt Prozessnamen und PID.

Der zweite Befehl gibt eine Beispielvariable an, die die Reihenfolge der Eingabeelemente ändert. Der Befehl behandelt jede Zeichenfolge in $Processes.

Hinweis

Das vierte Muster gibt implizit an, dass zwei oder mehr Wörter, die durch Leerzeichen getrennt sind, übereinstimmen. Ohne das vierte Muster wird nur das erste Wort der in doppelte Anführungszeichen eingeschlossenen Zeichenfolge übereinstimmen.

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 gezeigt:

  • -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'}

Achtung

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.