Condividi tramite


Convert-String

Formatta una stringa in modo che corrisponda agli esempi.

Sintassi

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

Descrizione

Il cmdlet formatta una stringa in modo che corrisponda al formato degli esempi.

Esempio

Esempio 1: Convertire il formato di una stringa

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

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

Il primo comando crea una matrice contenente nomi e cognome.

Il secondo comando formatta i nomi in base all'esempio. Inserisce il cognome prima nell'output, seguito da un iniziale.

Esempio 2: Semplificare il formato di una stringa

$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

Il primo comando crea una matrice contenente nomi iniziali, intermedi e cognome. Si noti che l'ultima voce non ha un secondo nome.

Il secondo comando formatta i nomi in base all'esempio. Inserisce il cognome nell'output, seguito dal nome. Tutti i nomi intermedi rimossi; la voce senza middle name viene gestita correttamente.

Esempio 3: Gestione dell'output quando le stringhe non corrispondono all'esempio

$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

Il primo comando crea una matrice contenente nomi iniziali, intermedi e cognome. Si noti che l'ultima voce non ha un secondo nome.

Il secondo comando formatta i nomi in base all'esempio. Inserisce il secondo nome nell'output, seguito dal nome. L'ultima voce in $Composers viene ignorata, perché non corrisponde al modello di esempio: non ha un secondo nome.

Esempio 4: Attenzione con gli spazi di bellezza

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

Wagner, R.
 Brahms, J.

Il primo comando crea una matrice di nomi e cognome. Si noti che il secondo e il quarto elemento hanno uno spazio finale aggiuntivo, dopo il cognome.

Il secondo comando converte tutte le stringhe che corrispondono al modello di esempio: parola, spazio, parola e spazio finale finale, tutto questo prima del segno di uguale(=). Si noti anche lo spazio iniziale nell'output.

Esempio 5: Formattare le informazioni sul processo con più modelli

$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 definisce modelli previsti diversi nei dati, tramite esempi.

Il primo modello, @{before='"Hello","World"'; after='World: Hello'}, legge come segue:

  • aspettarsi stringhe in cui una parola viene racchiusa tra virgolette doppie, quindi una virgola,
  • e poi il secondo, e l'ultimo, parola racchiusa tra virgolette;
  • senza spazi nella stringa. Nell'output: posizionare prima la seconda parola,
  • senza virgolette, poi uno spazio singolo, e poi la prima parola, senza virgolette.

Il secondo modello, @{before='"Hello","1"'; after='1: Hello'}, legge come segue:

  • aspettarsi stringhe in cui una parola viene racchiusa tra virgolette doppie, quindi una virgola,
  • e poi un numero racchiuso tra virgolette;
  • senza spazi nella stringa. Nell'output posizionare prima il numero,
  • senza virgolette, poi un solo spazio, e poi la parola, senza virgolette.

Il terzo modello, @{before='"Hello-World","22"'; after='22: Hello-World'}, legge come segue:

  • aspetta stringhe in cui due parole con un trattino tra vengono racchiuse in
  • virgolette doppie, quindi una virgola e quindi un numero racchiuso tra virgolette;
  • senza spazi tra la virgola e la terza virgoletta doppia.
  • Nell'output: posizionare prima il numero, senza virgolette, quindi un singolo spazio,
  • e poi le parole sillabate, senza virgolette.

Il quarto, e finale, pattern, @{before='"hello world","333"'; after='333: hello world'}, legge come segue:

  • aspetta stringhe in cui due parole con uno spazio tra vengono racchiuse tra
  • virgolette doppie, quindi una virgola e quindi un numero racchiuso tra virgolette;
  • senza spazi tra la virgola e la terza virgoletta doppia.
  • Nell'output: posizionare prima il numero, senza virgolette, quindi un singolo spazio,
  • e poi le parole con lo spazio tra, senza virgolette.

Il primo comando ottiene tutti i processi usando il cmdlet Get-Process. Il comando li passa al cmdlet Select-Object, che seleziona il nome del processo e l'ID processo. Alla fine della pipeline, il comando converte l'output in valori delimitati da virgole, senza informazioni sul tipo, usando il cmdlet ConvertTo-Csv. Il comando archivia i risultati nella variabile $Processes . $Processes ora contiene nomi di processo e PID.

Il secondo comando specifica una variabile di esempio che modifica l'ordine degli elementi di input. Il comando copre ogni stringa in $Processes.

Nota

Il quarto modello indica in modo implicito che vengono confrontate due o più parole separate da spazi. Senza il quarto criterio, viene trovata la corrispondenza solo della prima parola della stringa racchiusa tra virgolette doppie.

Parametri

-Example

Specifica un elenco di esempi del formato di destinazione. Specificare coppie separate dal segno di uguale (=), con il modello di origine a sinistra e il modello di destinazione a destra, come negli esempi seguenti:

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

Nota

Il secondo esempio usa un elenco di modelli

In alternativa, specificare un elenco di tabelle hash che contengono le proprietà Before e After .

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

Attenzione

Evitare di usare spazi intorno al segno di uguale (=), perché vengono considerati come parte del modello.

Type:List<T>[PSObject]
Aliases:E
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

Specifica una stringa da formattare.

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

Input

String

È possibile inviare tramite pipe stringhe a questo cmdlet.

Output

String

Questo cmdlet restituisce una stringa.