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.
Tipo: | List<T>[PSObject] |
Alias: | E |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-InputObject
Specifica una stringa da formattare.
Tipo: | String |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | True |
Accettare l'input della pipeline: | True |
Accettare caratteri jolly: | False |
Input
String
È possibile inviare tramite pipe stringhe a questo cmdlet.
Output
String
Questo cmdlet restituisce una stringa.