Overblog Suivre ce blog
Editer l'article Administration Créer mon blog
11 mai 2010 2 11 /05 /mai /2010 17:33

Technique 03

 

 

 

Et nous revoilà pour une petite aventure PowerShell !

 

Aujourd'hui, s'est le traitement des chaînes de caractères qui m'inspire. Autant, il est simple d'écrire "Bonjour" à l'écran (Write-Host "Bonjour"), autant les manipuler peut devenir un casse tête si on n'a pas de base.

 

Commençons par quelque chose de simple : Jouer avec le contenu. Comme tout langage de programmation, on peut chercher, transformer, voir remplacer des bouts de chaînes. Difficile ? Non, facile

 

Mes exemples suivant se baseront sur le mot "Hello".

  • Mettre en minuscule : "Hello".ToLower()
    • Résultat : "hello"
  • Mettre en majuscule : "Hello".ToUpper()
    • Résultat : "HELLO"
  • Vérifie si la chaîne de caractère se termine par "lo" : "Hello".EndsWith('lo')
    • Résultat : True
  • Vérifie si la chaîne de caractère commence par "lo" : "Hello".StartsWith('he')
    • Résultat : False
  • Vérifie si la chaîne de caractère en minuscule commence par "lo" : "Hello".toLower().StartsWith('he')
    • Résultat : True
  • Vérifie si la chaîne de caractère contient "l" : "Hello".Contains('l')
    • Résultat : True
  • Donne le dernier emplacement du caractère "l" : "Hello".LastIndexOf('l')
    • Résultat : 4
  • Donne le premier emplacement du caractère "l" : "Hello".IndexOf('l')
    • Résultat : 3
  • Retourne les caractères a partir du 3ème : "Hello".Substring(3)
    • Résultat : "lo"
  • Retourne 1 caractère en partant du 3ème : "Hello".Substring(3,1)
    • Résultat : "l"
  • Insère le mot "INSERTED" à la 3ème position : "Hello".Insert(3, "INSERTED")
    • Résultat : "HelINSERTEDlo"
  • Retourne le nombre de caractère : "Hello".Length
    • Résultat : 5
  • Remplace les "l" par des "x" : "Hello".Replace('l', 'x')
    • Résultat : "Hexo"
  • Sépare la chaîne de caractère en plusieurs avec comme séparateur la virgule : "Server1,Server2,Server3".Split(',')
    • Résultat : Tableau "Server1", "Server2", "Server3"
  • Supprime tous les espaces avant et après la chaîne de caractère : " remove space at ends ".Trim()
    • Résultat : "remove spaceat ends"
  • Supprime tous les espaces du début de la chaîne de caractère : " remove space at ends ".Trim(' rem')
    • Résultat : "remove spaceat ends "

 

Maintenant, passons à la manipulation de plusieurs chaînes:

  • Le "+" permet de concaténer deux chaînes de caractères
    • Exemple : $Ma_Variable = "Vive" + " " + "PowerShell" => $Ma_Variable = "Vive PowerShell"
  • Le "*" permet la multiplication, la répétition de chaîne
    • Exemple : $Ma_Variable = "Rouleau de printemps " * 3 => $Ma_Variable = "Rouleau de printemps Rouleau de printemps Rouleau de printemps "

 

Bon, comme vous êtes bon élève, quelques petits opérateurs :

  • Comparaison d'égalité : -eq
  • Comparaison de différence : -ne
  • Comparaison de supériorité : -gt
  • Comparaison de supériorité ou égalité : -ge
  • Comparaison d'infériorité : -lt
  • Comparaison d'infériorité ou égalité : -le

 

A noter tout de même que l'on peut préciser si la casse doit être respectée :

  • Le "i" permet de ne pas tenir compte de la casse
  • Le "c" permet de tenir compte de la casse

Par exemple :-ceq => Respecte la casse et vérifie si les chaînes sont identique

 

 

Pour finir, les caractères d'échappement, dit caractères spéciaux :

  • La valeur Null : '0
  • Une alerte : 'a
  • Un retour arrière : 'b
  • Un saut de page : 'f
  • Une nouvelle ligne : 'n
  • Un retour chariot : 'r
  • Une tabulation : 't

Prenez note de la différence entre une nouvelle ligne et un retour chariot : Une nouvelle ligne commence un nouveau paragraphe. En revanche, le retour chariot passe à la ligne mais le texte est considéré comme un seul paragraphe.

Partager cet article

Repost 0
Published by Lucky le Koala, le bien-heureux - dans Technique
commenter cet article

commentaires

fredy 26/12/2016 18:32

Merci beaucoup pour ton exposer il est très claire
a présent comment on peux savoir la présence ou pas d'un mot ou plusieurs mots dans fichier txt ou xml
merci pour ton aide

Lucky 30/12/2016 11:38

Bonjour,
Il y a plusieurs facon de chercher une chaine de caractere dans un fichier. La commande suivante donne le nombre de ligne que la chaine de caractere est presente : @( get-content monfichier.txt | where-object { $_.contains("ERROR") } ).count
On peut faire une recherche dans plusieur fichiers avec get-childitem -recurse | select-string -pattern "ERROR" qui retourne le nom du fichier et le numero de la ligne

Sam 22/12/2016 10:28

Merci pour l'article

Synop6 22/07/2013 13:20

Moi je voudrais utiliser les méthodes sur des variables ? ON peut ?

Auze 07/08/2014 14:10

Je n'ai vu la date qu'après :D

Synop6 05/08/2014 18:34

Merci mais un an après ^^

Auze 05/08/2014 10:56

Oui : write-host $a.Substring($a.LastIndexOf("\"))

Présentation

  • : Le blog de Lucky le Koala
  • Le blog de Lucky le Koala
  • : Le partage, c'est beau
  • Contact

Catégories