Convert-String

Formaterar en sträng för att matcha exempel.

Syntax

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

Description

Cmdleten formaterar en sträng som matchar formatet för exempel.

Exempel

Exempel 1: Konvertera format för en sträng

"Mu Han", "Jim Hance", "David Ahs", "Kim Akers" | Convert-String -Example "Ed Wilson=Wilson, E."

Han, M.
Hance, J.
Ahs, D.
Akers, K.

Det första kommandot skapar en matris som innehåller för- och efternamn.

Det andra kommandot formaterar namnen enligt exemplet. Det sätter efternamnet först i utdata, följt av en initial.

Exempel 2: Förenkla formatet på en sträng

$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

Det första kommandot skapar en matris som innehåller förnamn, mellannamn och efternamn. Observera att den senaste posten inte har något mellannamn.

Det andra kommandot formaterar namnen enligt exemplet. Det placerar efternamnet först i utdata, följt av förnamnet. Alla mellannamn har tagits bort. posten utan mellannamn hanteras korrekt.

Exempel 3: Utdatahantering när strängar inte matchar exempel

$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

Det första kommandot skapar en matris som innehåller förnamn, mellannamn och efternamn. Observera att den senaste posten inte har något mellannamn.

Det andra kommandot formaterar namnen enligt exemplet. Det placerar mellannamnet först i utdata, följt av förnamnet. Den sista posten i $Composers hoppas över eftersom den inte matchar exempelmönstret: den har inget mellannamn.

Exempel 4: Varning med skönhetsutrymmen

$composers = @("Antonio Vivaldi", "Richard Wagner ", "Franz Schubert", "Johannes Brahms ")
$composers | Convert-String -Example "Patti Fuller = Fuller, P."

Wagner, R.
 Brahms, J.

Det första kommandot skapar en matris med för- och efternamn. Observera att andra och fjärde objekten har ett extra avslutande utrymme efter efternamnet.

Det andra kommandot konverterar alla strängar som matchar exempelmönstret: ord, blanksteg, ord och sista avslutande blanksteg, allt detta före likhetstecknet(=). Observera också det inledande utrymmet i utdata.

Exempel 5: Formatera processinformation med flera mönster

$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 definierar olika förväntade mönster i data, genom exempel.

Det första mönstret, @{before='"Hello","World"'; after='World: Hello'}, lyder på följande sätt:

  • förvänta dig strängar där ett ord omges av dubbla citattecken, sedan ett kommatecken,
  • och sedan det andra och sista ordet omgivet av citattecken;
  • utan blanksteg i strängen. I utdata: placera andra ordet först,
  • utan citattecken, sedan ett enda blanksteg och sedan det första ordet, utan citattecken.

Det andra mönstret, @{before='"Hello","1"'; after='1: Hello'}, lyder på följande sätt:

  • förvänta dig strängar där ett ord omges av dubbla citattecken, sedan ett kommatecken,
  • och sedan ett tal omgivet av citattecken;
  • utan blanksteg i strängen. I utdata: placera talet först,
  • utan citattecken, sedan ett enda blanksteg och sedan ordet utan citattecken.

Det tredje mönstret, @{before='"Hello-World","22"'; after='22: Hello-World'}, lyder på följande sätt:

  • förvänta strängar där två ord med ett bindestreck mellan kommer omges av
  • dubbla citattecken, sedan ett kommatecken och sedan ett tal som omges av citattecken;
  • utan blanksteg mellan kommatecknet och det tredje dubbla citattecknet.
  • På utdata: placera talet först, utan citattecken, sedan ett enda blanksteg,
  • och sedan de bindestreckade orden, utan citattecken.

Det fjärde och sista mönstret, @{before='"hello world","333"'; after='333: hello world'}, lyder på följande sätt:

  • förvänta dig strängar där två ord med ett blanksteg mellan kommer omges av
  • dubbla citattecken, sedan ett kommatecken och sedan ett tal som omges av citattecken;
  • utan blanksteg mellan kommatecknet och det tredje dubbla citattecknet.
  • På utdata: placera talet först, utan citattecken, sedan ett enda blanksteg,
  • och sedan orden med utrymmet däremellan, utan citattecken.

Det första kommandot hämtar alla processer med hjälp av cmdleten Get-Process. Kommandot skickar dem till cmdleten Select-Object, som väljer processnamnet och process-ID:t. I slutet av pipelinen konverterar kommandot utdata till kommaavgränsade värden, utan typinformation, med hjälp av cmdleten ConvertTo-Csv. Kommandot lagrar resultatet i variabeln $Processes . $Processes innehåller nu processnamn och PID.

Det andra kommandot anger en exempelvariabel som ändrar ordningen på indataobjekten. Kommandot döljer varje sträng i $Processes.

Kommentar

Det fjärde mönstret anger implicit att två eller flera ord avgränsade med blanksteg matchas. Utan det fjärde mönstret matchas endast det första ordet i strängen som omges av dubbla citattecken.

Parametrar

-Example

Anger en lista med exempel på målformatet. Ange par avgränsade med likhetstecknet (=), med källmönstret till vänster och målmönstret till höger, som i följande exempel:

  • -Example "Hello World=World, Hello"
  • -Example "Hello World=World: Hello",'"Hello","1"=1: Hello'

Kommentar

I det andra exemplet används en lista med mönster

Du kan också ange en lista med hash-tabeller som innehåller före- och efteregenskaper.

  • -Example @{before='"Hello","World"'; after='World: Hello'}, @{before='"Hello","1"'; after='1: Hello'}

Varning

Undvik att använda blanksteg runt likhetstecknet(=), eftersom de behandlas som en del av mönstret.

Typ:List<T>[PSObject]
Alias:E
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken:False

-InputObject

Anger en sträng som ska formateras.

Typ:String
Position:Named
Standardvärde:None
Obligatorisk:True
Godkänn pipeline-indata:True
Godkänn jokertecken:False

Indata

String

Du kan skicka strängar till den här cmdleten.

Utdata

String

Den här cmdleten returnerar en sträng.