Partilhar via


Convert-String

Formata uma cadeia de caracteres para corresponder a exemplos.

Sintaxe

Default (Predefinição)

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

Description

O cmdlet formata uma cadeia de caracteres para corresponder ao formato dos exemplos.

Exemplos

Exemplo 1: Converter formato de uma cadeia de caracteres

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

O primeiro comando cria uma matriz que contém nomes e sobrenomes.

O segundo comando formata os nomes de acordo com o exemplo. Ele coloca o sobrenome em primeiro lugar na saída, seguido por uma inicial.

Exemplo 2: Simplificar o formato de uma cadeia de caracteres

$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

O primeiro comando cria uma matriz que contém nomes, nomes do meio e sobrenomes. Observe que a última entrada não tem nome do meio.

O segundo comando formata os nomes de acordo com o exemplo. Ele coloca o sobrenome em primeiro lugar na saída, seguido pelo nome. Todos os nomes do meio removidos; entrada sem nome do meio é tratada corretamente.

Exemplo 3: Gerenciamento de saída quando as cadeias de caracteres não correspondem ao exemplo

$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

O primeiro comando cria uma matriz que contém nomes, nomes do meio e sobrenomes. Observe que a última entrada não tem nome do meio.

O segundo comando formata os nomes de acordo com o exemplo. Ele coloca o nome do meio primeiro na saída, seguido pelo primeiro nome. A última entrada no $Composers é ignorada, porque não corresponde ao padrão de amostra: não tem nome do meio.

Exemplo 4: Cuidado com espaços de beleza

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

O primeiro comando cria uma matriz de nomes e sobrenomes. Observe que o segundo e quarto itens têm um espaço extra à direita, após o sobrenome.

O segundo comando converte todas as cadeias de caracteres que correspondem ao padrão de exemplo: palavra, espaço, palavra e espaço final à direita, tudo isso antes do sinal de igual(=). Além disso, observe o espaço à frente na saída.

Exemplo 5: Formatar informações de processo com vários padrões

$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 define diferentes padrões esperados nos dados, através de exemplos.

O primeiro padrão, @{before='"Hello","World"'; after='World: Hello'}, tem a seguinte redação:

  • esperar cadeias de caracteres onde uma palavra vem entre aspas duplas, depois uma vírgula,
  • e, em seguida, a segunda e última palavra entre aspas;
  • sem espaços na cadeia de caracteres. Na saída: coloque a segunda palavra em primeiro lugar,
  • sem aspas, depois um único espaço e, em seguida, a primeira palavra, sem aspas.

O segundo padrão, @{before='"Hello","1"'; after='1: Hello'}, tem a seguinte redação:

  • esperar cadeias de caracteres onde uma palavra vem entre aspas duplas, depois uma vírgula,
  • e, em seguida, um número entre aspas;
  • sem espaços na cadeia de caracteres. Na saída: coloque o número primeiro,
  • sem aspas, depois um único espaço e, em seguida, a palavra, sem aspas.

O terceiro padrão, @{before='"Hello-World","22"'; after='22: Hello-World'}, tem a seguinte redação:

  • esperar cadeias de caracteres onde duas palavras com um hífen no meio vêm entre
  • aspas duplas, depois uma vírgula e, em seguida, um número entre aspas;
  • sem espaços entre a vírgula e a terceira aspa dupla.
  • Na saída: coloque o número primeiro, sem aspas, depois um único espaço,
  • e depois as palavras hifenizadas, sem aspas.

O quarto e último padrão, @{before='"hello world","333"'; after='333: hello world'}, tem a seguinte redação:

  • esperar cadeias de caracteres onde duas palavras com um espaço no meio vêm incluídas em
  • aspas duplas, depois uma vírgula e, em seguida, um número entre aspas;
  • sem espaços entre a vírgula e a terceira aspa dupla.
  • Na saída: coloque o número primeiro, sem aspas, depois um único espaço,
  • e depois as palavras com o espaço no meio, sem aspas.

O primeiro comando obtém todos os processos usando o cmdlet Get-Process. O comando os passa para o cmdlet Select-Object, que seleciona o nome e a ID do processo. No final do pipeline, o comando converte a saída em valores separados por vírgula, sem informações de tipo, usando o cmdlet ConvertTo-Csv. O comando armazena os resultados na variável $Processes. $Processes agora contém nomes de processos e PID.

O segundo comando especifica uma variável de exemplo que altera a ordem dos itens de entrada. O comando cobre cada cadeia de caracteres em $Processes.

Observação

O quarto padrão diz implicitamente que duas ou mais palavras separadas por espaços são correspondentes. Sem o quarto padrão, apenas a primeira palavra da cadeia de caracteres entre aspas duplas é correspondida.

Parâmetros

-Example

Especifica uma lista de exemplos do formato de destino. Especifique pares separados pelo sinal de igual (=), com o padrão de origem à esquerda e o padrão de destino à direita, como nos seguintes exemplos:

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

Observação

O segundo exemplo usa uma lista de padrões

Como alternativa, especifique uma lista de tabelas de hash que contenham propriedades Antes e Depois propriedade.

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

Atenção

Evite usar espaços ao redor do sinal de igual(=), pois eles são tratados como parte do padrão.

Propriedades dos parâmetros

Tipo:

List<T>[PSObject]

Default value:None
Suporta carateres universais:False
NãoMostrar:False
Aliases:E

Conjuntos de parâmetros

(All)
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-InputObject

Especifica uma cadeia de caracteres para formatar.

Propriedades dos parâmetros

Tipo:String
Default value:None
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

(All)
Position:Named
Obrigatório:True
Valor do pipeline:True
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

CommonParameters

Este cmdlet suporta os parâmetros comuns: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction e -WarningVariable. Para obter mais informações, consulte about_CommonParameters.

Entradas

String

Você pode canalizar cadeias de caracteres para este cmdlet.

Saídas

String

Este cmdlet retorna uma cadeia de caracteres.