powershell_base2

Ceci est une ancienne révision du document !


Les bases de Powershell - 2ème partie

On continue avec les bases du langage Powershell.

Manipuler des chaînes de caractères est utile pour afficher des résultats, extraire des données… A cette effet, Powershell dispose de certaines méthodes et de l'interprétation de certains caractères spéciaux, dits d'échappements.

Caractère Explication
`r Crée un retour charriot, en gros revient au début de la ligne
`n Crée un nouvelle ligne
`r`n Du coup, retour charriot sur une nouvelle ligne, l'équivalent de la touche Entrée dans un traitement de texte
`t Crée une tabulation
`b Reviens sur un carcatère (Backspace). Ce retour est non destructif. Je cherche encore son utilité…
`a Émet un bip (Alarm)
`0 Caractère nul. A l'affichage, équivaut à un espace mais différent d'un point de vu codage de caractère
`' Permet d'afficher ' sans qu'il ne soit interprété
`` Permet d'afficher ` sans qu'il ne soit interprété
`" Permet d'afficher " sans qu'il ne soit interprété
Opérateur Explication Exemple
+ Renvoie une nouvelle chaîne contenant la chaîne A suivit de la chaîne B.
$A = "abc"
$B = "def"
$A + $B
abcdef
* Renvoie une nouvelle chaîne contenant autant d'occurrence de la chaîne A qu'indiqué.
$A = "a"
$A * 10
aaaaaaaaaa
Méthode Explication Exemple
.Chars() Renvoie le caractère présent à la position indiquée dans la chaîne A. La première position est numéroté 0.
$A = "abcd"
$A.Chars(1)
b
.CompareTo() Compare une chaîne avec une autre. Le résutat peut être -1, 1 ou 0 selon que la référence de la chaîne comparée précède, suit ou apparaît à la même position que la référence de la chaîne traité. En gros, 0 si les chaînes sont identiques, 1 si la chaîne A a plus de caractères que la chaîne B et/ou que ces derniers sont plus élevés dans la hiérarchie des caractères (E>e) et -1 si la chaîne B a plus de caractères que la chaîne A et/ou que ces derniers sont plus élevés dans la hiérarchie des caractères.
$A = "abcd"
$B = "abc"
$A.CompareTo($B)
1
.Contains() Renvoie $true ou $false selon que la chaîne A contient ou pas la chaîne B. Si B est vide, la réponse sera toujours $true.
$A = "abcd"
$B = "bc"
$A.Contains($B)
$true
.EndsWith() Renvoie $true ou $false selon que la chaîne A finit ou pas par la chaîne B. Si B est vide, la réponse sera toujours $true.
$A = "abcd"
$B = "cd"
$A.EndsWith($B)
$true
.Equals() Renvoie $true ou $false selon que la chaîne A est égal ou pas à la chaîne B. Sensible à la casse.
$A = "abc"
$B = "ABC"
$A.Equals($B)
$false
.IndexOf() Renvoie la position de la première occurrence de la chaîne B dans la chaîne A. La première position est numéroté 0 et -1 sera renvoyé si aucune occurrence n'est trouvé.
$A = "abc"
$B = "c"
$A.IndexOf($B)
2
.IndexOfAny() Renvoie la position de la première occurrence trouvé dans la chaîne A parmi les caractères de la chaîne B. La première position est numéroté 0. En gros, il indique la position dès qu'il trouve dans A, une lettre présente dans B. La première position est numéroté 0 et -1 sera renvoyé si aucune occurrence n'est trouvé.
$A = "abcdef"
$B = "Cfe"
$A.IndexOfAny($B)
4
.Insert() Insert la chaîne B dans la chaîne A à la position indiquée.
$A = "abcdef"
$B = "ghi"
$A.Insert(3,$B)
abcghidef
.GetEnumerator() Renvoie sur des lignes séparées chaque caractère de A.
$A = "abc"
$A.GetEnumerator(3,$B)
a
b
c
.LastIndexOf() Comme IndexOf() mais pour la dernière occurence. La première position est numéroté 0 et -1 sera renvoyé si aucune occurrence n'est trouvé.
$A = "abcdefdefacb"
$B = "c"
$A.LastIndexOf($B)
10
.LastIndexOfAny() Comme IndexOfAny() mais pour la dernière occurence. La première position est numéroté 0 et -1 sera renvoyé si aucune occurrence n'est trouvé.
$A = "abcdefdefacb"
$B = "Cfe"
$A.LastIndexOfAny($B)
8
.PadLeft() Ajoute autant d'espace qu'indiqué au début de la chaîne A.
$A = "abc"
$A.PadLeft(10)
          abc
.PadRight() Même chose mais à la fin.
$A = "abc"
$B = "def"
$A.PadRight(10) + $B
abc          def
.Remove() Supprime la quantité indiquée de caractères à partir de la position indiquée.
$A = "abcdefghi"
$A.Remove(3,5)
abci
.Replace() Remplace toutes les occurrences d'un caractère par un autre caractère.
$A = "abcabcabc"
$A.Replace("a","i")
ibcibcibc
.Split() Sépare la chaîne en plusieurs chaines. La séparation se fait au niveau du caractère indiqué.
$A = "Fichier.txt"
$A.Split(".")
Fichier
txt
.StartsWith() Renvoie $true si la chaîne A commence par la chaîne B et $false dans le cas contraire.
$A = "abcdefghi"
$B = "abc"
$A.StartsWith($B)
$true
.Substring() Extraie de la chaîne A, à partir de la position indiquée, la quantité de caractère indiquée.
$A = "abcdefghi"
$A.Substring(4,3)
efg
.ToCharArray() Transforme une chaîne de caractère en tableau contenant chaque caractère. A l'affichage, ça ressemble à .GetEnumerator() mais le type d'objet est différent.
$A = "abc"
$A.ToCharArray()
a
b
c
.ToLower() Convertit toutes les majuscules de la chaîne en minuscule.
$A = "AbCdEf"
$A.ToLower()
abcdef
.ToUpper() Convertit toutes les minuscules de la chaîne en majuscule.
$A = "AbCdEf"
$A.ToUpper()
ABCDEF
.Trim() Supprime les espaces en début et à la fin de la chaîne mais pas ceux au milieu.
$A = "   abc def   "
$B = "ghi"
$A.Trim() + $B
abc   defghi
.TrimEnd() Supprime les espaces à la fin de la chaîne mais pas ceux du début ou au milieu.
$A = "   abc def   "
$B = "ghi"
$A.TrimEnd() + $B
   abc   defghi
.TrimStart() Supprime les espaces au début de la chaîne mais pas ceux au milieu ou à la fin.
$A = "   abc def   "
$B = "ghi"
$A.TrimStart() + $B
abc   def   ghi

Le système possèdent quelques variables utilisables par l'utilisateur mais seul le système définit leur contenu. En voici quelques-unes.

Référence : Microsoft

Variable Explication
$$ Contient le dernier jeton de la dernière ligne reçu dans la session.
$? État de la dernière commande exécuté. $true pour succès et $false pour échec.
$^ Contient le premier jeton de la dernière ligne reçu dans la session.
$_ ou $PSITEM Contient le dernier objet du pipeline.
$ARGS Contient les arguments passés à une fonction ou un script.
$ERROR Contient les informations du dernier échec. Ceci peut représenter plusieurs erreurs.
$FALSE Renvoie toujours le booléen faux.
$HOME Renvoie le chemin du dossier utilisateur.
$HOST Contient les informations de l'hôte de la session Powershell.
$IsCoreCLR Renvoie $true si la session Powershell s'exécute dans un environnement .NET Core.
$IsLinux Renvoie $true si la session Powershell s'exécute dans un environnement Linux.
$IsMacOS Renvoie $true si la session Powershell s'exécute dans un environnement MacOS.
$IsWindows Renvoie $true si la session Powershell s'exécute dans un environnement Windows.
$LASTEXITCODE Renvoie le dernier code de sortie.
$NULL Correspond à une variable sans contenu. On peut l'utiliser comme n'importe quelle variable mais aussi y envoyer les résultats d'une commande. Dans ce cas, la commande s'exécute correctement mais n'affiche aucun résultat.
$PID Renvoie l'identifiant du processus qui contient la session actuelle de Powershell.
$PROFILE Renvoie le chemin complet du profil Powershell de l'utilisateur.
$PSHOME Renvoie le chemin complet de l'exécutable powershell.exe.
$PSVERSIONTABLE Renvoie la version de Powershell.
$PWD Renvoie le chemin complet du dossier actuel.
$TRUE Renvoie toujours le booléen vrai.

Nicolas THOREZ 2019/02/22 19:08

Entrer votre commentaire. La syntaxe wiki est autorisée:
 
  • powershell_base2.1550851727.txt.gz
  • Dernière modification : 2019/02/22 15:08
  • (modification externe)