Sdílet prostřednictvím


Convert-String

Naformátuje řetězec tak, aby odpovídal příkladům.

Syntaxe

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

Description

Rutina formátuje řetězec tak, aby odpovídal formátu příkladů.

Příklady

Příklad 1: Převod formátu řetězce

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

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

První příkaz vytvoří pole, které obsahuje křestní jméno a příjmení.

Druhý příkaz formátuje názvy podle příkladu. Vloží příjmení jako první do výstupu, za nímž následuje počáteční.

Příklad 2: Zjednodušení formátu řetězce

$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

První příkaz vytvoří pole, které obsahuje křestní jména, prostřední jména a příjmení. Všimněte si, že poslední položka nemá žádné druhé jméno.

Druhý příkaz formátuje názvy podle příkladu. Vloží příjmení do výstupu, za nímž následuje křestní jméno. Všechny prostřední názvy byly odebrány; položka bez prostředního názvu je zpracována správně.

Příklad 3: Správa výstupu, když se řetězce neshodují s příkladem

$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

První příkaz vytvoří pole, které obsahuje křestní jména, prostřední jména a příjmení. Všimněte si, že poslední položka nemá žádné druhé jméno.

Druhý příkaz formátuje názvy podle příkladu. Vloží křestní jméno do výstupu a za ním křestní jméno. Poslední položka se $Composers přeskočí, protože neodpovídá vzoru vzorku: nemá žádný prostřední název.

Příklad 4: Upozornění s prostory krásy

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

Wagner, R.
 Brahms, J.

První příkaz vytvoří pole křestních jmen a příjmení. Všimněte si, že druhá a čtvrtá položka mají za příjmením nadbytečnou koncovou mezeru.

Druhý příkaz převede všechny řetězce, které odpovídají vzoru vzorku: slovo, mezera, slovo a poslední koncová mezera, vše před znaménkem rovná se(=). Všimněte si také úvodní mezery ve výstupu.

Příklad 5: Formátování informací o procesu s více vzory

$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 definuje různé očekávané vzory v datech prostřednictvím příkladů.

První vzor , @{before='"Hello","World"'; after='World: Hello'}čte takto:

  • očekávejte řetězce, ve kterých je slovo uzavřeno v dvojitých uvozovkách, a pak čárkou.
  • a potom druhé a poslední slovo uzavřené v uvozovkách;
  • bez mezer v řetězci. Na výstupu: první místo druhého slova
  • bez uvozovek, pak jedno mezery a potom první slovo bez uvozovek.

Druhý vzor, @{before='"Hello","1"'; after='1: Hello'}čte takto:

  • očekávejte řetězce, ve kterých je slovo uzavřeno v dvojitých uvozovkách, a pak čárkou.
  • a pak číslo uzavřené v uvozovkách;
  • bez mezer v řetězci. Na výstupu: nejprve umístěte číslo.
  • bez uvozovek, pak jednu mezeru a potom slovo bez uvozovek.

Třetí vzor, @{before='"Hello-World","22"'; after='22: Hello-World'}čte takto:

  • očekávejte řetězce, ve kterých jsou dvě slova s pomlčkou mezi nimi uzavřena.
  • dvojité uvozovky, potom čárka a potom číslo uzavřené v uvozovkách;
  • bez mezer mezi čárkou a třetí dvojitou uvozovkou.
  • Na výstupu: nejprve umístěte číslo bez uvozovek a pak jednu mezeru.
  • a potom pomlčka slov bez uvozovek.

Čtvrtý a konečný vzor, @{before='"hello world","333"'; after='333: hello world'}čte takto:

  • očekávejte řetězce, ve kterých jsou dvě slova s mezerou mezi nimi uzavřena.
  • dvojité uvozovky, potom čárka a potom číslo uzavřené v uvozovkách;
  • bez mezer mezi čárkou a třetí dvojitou uvozovkou.
  • Na výstupu: nejprve umístěte číslo bez uvozovek a pak jednu mezeru.
  • a potom slova s mezerou mezi, bez uvozovek.

První příkaz získá všechny procesy pomocí rutiny Get-Process. Příkaz je předá rutině Select-Object, která vybere název procesu a ID procesu. Na konci kanálu příkaz převede výstup na hodnoty oddělené čárkami bez informací o typu pomocí rutiny ConvertTo-Csv. Příkaz uloží výsledky do proměnné $Processes . $Processes teď obsahuje názvy procesů a PID.

Druhý příkaz určuje ukázkovou proměnnou, která změní pořadí vstupních položek. Příkaz překryje každý řetězec v $Processessouboru .

Poznámka:

Čtvrtý vzor implicitně říká, že se shodují dvě nebo více slov oddělených mezerami. Bez čtvrtého vzoru se porovná pouze první slovo řetězce uzavřeného v dvojitých uvozovkách.

Parametry

-Example

Určuje seznam příkladů cílového formátu. Zadejte dvojice oddělené znaménkem rovná se (=) se zdrojovým vzorem vlevo a cílovým vzorem vpravo, jak je znázorněno v následujících příkladech:

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

Poznámka:

Druhý příklad používá seznam vzorů.

Případně můžete zadat seznam tabulek hash, které obsahují vlastnosti Před a Za .

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

Upozornění

Nepoužívejte mezery kolem znaménka= rovná se, protože jsou považovány za součást vzoru.

Typ:List<T>[PSObject]
Aliasy:E
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-InputObject

Určuje řetězec, který se má formátovat.

Typ:String
Position:Named
Default value:None
Vyžadováno:True
Přijmout vstup kanálu:True
Přijmout zástupné znaky:False

Vstupy

String

Do této rutiny můžete zamísťovat řetězce.

Výstupy

String

Tato rutina vrátí řetězec.