Partager via


Convert-String

Met en forme une chaîne pour qu’elle corresponde à des exemples.

Syntax

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

Description

L’applet de commande met en forme une chaîne pour qu’elle corresponde au format des exemples.

Exemples

Exemple 1 : Convertir le format d’une chaîne

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

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

La première commande crée un tableau qui contient des prénoms et des noms.

La deuxième commande met en forme les noms en fonction de l’exemple. Il place le nom de famille en premier dans la sortie, suivi d’un initial.

Exemple 2 : Simplifier le format d’une chaîne

$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

La première commande crée un tableau qui contient des prénoms, des prénoms et des prénoms. Notez que la dernière entrée n’a pas de prénom.

La deuxième commande met en forme les noms en fonction de l’exemple. Il place le prénom dans la sortie, suivi du prénom. Tous les prénoms supprimés ; l’entrée sans nom intermédiaire est gérée correctement.

Exemple 3 : Gestion des sorties lorsque les chaînes ne correspondent pas à l’exemple

$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

La première commande crée un tableau qui contient des prénoms, des prénoms et des prénoms. Notez que la dernière entrée n’a pas de prénom.

La deuxième commande met en forme les noms en fonction de l’exemple. Il place le prénom du prénom dans la sortie, suivi du prénom. La dernière entrée est $Composers ignorée, car elle ne correspond pas à l’exemple de modèle : elle n’a pas de prénom.

Exemple 4 : Attention avec les espaces de beauté

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

Wagner, R.
 Brahms, J.

La première commande crée un tableau de prénoms et de noms. Notez que les deuxième et quatrième éléments ont un espace de fin supplémentaire, après le nom.

La deuxième commande convertit toutes les chaînes qui correspondent à l’exemple de modèle : mot, espace, mot et espace de fin final, tout cela avant le signe égal(=). Notez également l’espace de début dans la sortie.

Exemple 5 : Mettre en forme les informations de processus avec plusieurs modèles

$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 définit différents modèles attendus dans les données, par le biais d’exemples.

Le premier modèle, @{before='"Hello","World"'; after='World: Hello'}lit comme suit :

  • attendez des chaînes où un mot est placé entre guillemets doubles, puis une virgule,
  • puis le deuxième et le dernier mot entre guillemets ;
  • sans espaces dans la chaîne. Dans la sortie : placez le deuxième mot en premier,
  • sans guillemets, puis un espace unique, puis le premier mot, sans guillemets.

Le deuxième modèle, @{before='"Hello","1"'; after='1: Hello'}lit comme suit :

  • attendez des chaînes où un mot est placé entre guillemets doubles, puis une virgule,
  • puis un nombre entre guillemets ;
  • sans espaces dans la chaîne. Dans la sortie : placez le nombre en premier,
  • sans guillemets, puis un espace unique, puis le mot, sans guillemets.

Le troisième modèle, @{before='"Hello-World","22"'; after='22: Hello-World'}lit comme suit :

  • s’attendent à des chaînes où deux mots avec un trait d’union entre sont placés entre
  • guillemets doubles, puis virgule, puis nombre placé entre guillemets ;
  • sans espace entre la virgule et la troisième guillemet double.
  • Dans la sortie : placez d’abord le nombre, sans guillemets, puis un espace unique,
  • puis les mots traits d’union, sans guillemets.

Le quatrième, et final, modèle, @{before='"hello world","333"'; after='333: hello world'}lit comme suit :

  • s’attendent à des chaînes où deux mots avec un espace entre sont placés entre
  • guillemets doubles, puis virgule, puis nombre placé entre guillemets ;
  • sans espace entre la virgule et la troisième guillemet double.
  • Dans la sortie : placez d’abord le nombre, sans guillemets, puis un espace unique,
  • et ensuite les mots avec l’espace entre, sans guillemets.

La première commande obtient tous les processus à l’aide de l’applet de commande Get-Process. La commande les transmet à l’applet de commande Select-Object, qui sélectionne le nom du processus et l’ID de processus. À la fin du pipeline, la commande convertit la sortie en valeurs séparées par des virgules, sans informations de type, à l’aide de l’applet de commande ConvertTo-Csv. La commande stocke les résultats dans la variable $Processes . $Processes contient désormais des noms de processus et des PID.

La deuxième commande spécifie un exemple de variable qui modifie l’ordre des éléments d’entrée. La commande couvre chaque chaîne dans $Processes.

Remarque

Le quatrième modèle indique implicitement que deux mots ou plus séparés par des espaces sont mis en correspondance. Sans le quatrième modèle, seul le premier mot de la chaîne entre guillemets doubles est mis en correspondance.

Paramètres

-Example

Spécifie une liste d’exemples du format cible. Spécifiez des paires séparées par le signe égal (=), avec le modèle source à gauche et le modèle cible à droite, comme dans les exemples suivants :

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

Remarque

Le deuxième exemple utilise une liste de modèles

Vous pouvez également spécifier une liste de tables de hachage qui contiennent des propriétés Before et After .

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

Attention

Évitez d’utiliser des espaces autour du signe égal(=), car ils sont traités dans le cadre du modèle.

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

-InputObject

Spécifie une chaîne à mettre en forme.

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

Entrées

String

Vous pouvez diriger des chaînes vers cette applet de commande.

Sorties

String

Cette applet de commande retourne une chaîne.