Outils pour utilisateurs

Outils du site


systemes_dexploitation:windows:all:powershell

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
systemes_dexploitation:windows:all:powershell [2016/11/08 22:46] – [Variables] sgariepysystemes_dexploitation:windows:all:powershell [2016/12/19 21:55] (Version actuelle) – supprimée sgariepy
Ligne 1: Ligne 1:
-====== PowerShell ====== 
- 
-===== Version ===== 
- 
-  $PSVersionTable 
- 
-===== Exécuter des scripts ===== 
- 
-   
-  set-executionpolicy RemoteSigned 
- 
-====== Variables ====== 
- 
-On peut spécifier une variable tout simplement en lui assignant une valeur: 
- 
-<code> 
-$var="Ceci est une chaîne." 
-$nombre = 5 
-$fichiers = dir C:\ 
-</code> 
- 
-===== Variables d'environnement ===== 
- 
-Les variables d'environnement on comme leur propre //namespace// ''$env:'' Par exemple, pour le ''PATH'', il faut le référencer par ''$env:PATH''. 
- 
-  Write-Host $env:PATH 
- 
-Pour la liste des variables d'environnement, on peut faire ''Get-ChildItem Env:''. 
- 
-====== Chaînes ====== 
- 
- 
-Dans PowerShell, les chaînes peuvent être délimitées par des guillemets simples (''%%'%%'', //single-quote//) ou doubles (''%%"%%'', //double-quote//).  Donc, ces deux valeurs sont équivalentes: 
-  * ''%%"Hello World"%%'' 
-  * ''%%'Hello World'%%'' 
- 
-Utiliser les deux types de délimiteurs permet d'inclure des caractères de l'autre type, par exemple: ''%%J'utilise le PowerShell.%%'' ou ''%%'Il a dit "Hello World" dans son script PowerShell.'%%''. 
- 
-Si un guillemet simple est nécessaire dans une chaîne délimitée par des guillemets simples, on peut les doubler, par exemple : ''%%'J''utilise PowerShell.'%%''. 
- 
-===== Here-string ===== 
- 
-Pour initialiser une chaîne sur plusieurs lignes, on peut utilser le principe de //here-string// avec des ''%%'@%%'' ou ''%%"@%%'': 
- 
-<code> 
-$var='@ 
-J'utilise les here-strings 
-dans PowerShell 
-'@ 
- 
-$var2="@ 
-un autre exemple de here-string. 
-"@ 
- 
-# En bas, ça ne fonctionnera pas 
-$var3='@ 
-on ne peut pas laisser d'espace devant le dernier delimiteur 
-    '@ 
-</code> 
- 
- 
-===== Substitution de chaîne ===== 
- 
-La différence principale entre utiliser le délimiteur //single-quote// ou //double-quote//, c'est la substitution dans les chaînes.  Dans les chaînes délimitées par des //double-quotes//, l'utilisation d'une variable dans la chaîne sera remplacée par sa valeur.  Si la variable ''$nom'' contient ''Stéphane'', la valeur de la chaîne ''%%"Mon nom est $nom."%%'' sera ''Mon nom est Stéphane.'' 
- 
- 
- 
-===== Caractère d'échappement ===== 
- 
-Normalement dans les langages de programmation, le caractère d'échappement est la barre oblique inversée (''\'', //backslash//), mais dans PowerShell on peut s'en servir comme séparateur de répertoires dans les chemins (''C:\Program Files\Application''), donc on utilise plutôt le //backtick// : ''`''. 
- 
-  "La valeur de la variable `$var est $var" 
- 
- 
-Par exemple, pour une commande : 
- 
-  Copy-Item -Recurse C:\Projets\Application` 101\Site` Web\* -ToSession $session -Destination C:\inetpub\Application` 101 
- 
- 
-====== Scripts ====== 
- 
-===== Paramètres ===== 
- 
- 
-Pour un script appelé de cette façon : ''script.ps1 param1 param2'', les valeurs seront dans ''args'' qui est un tableau: 
- 
-  $param1=args[0] 
-  $param2=args[1] 
- 
-Pour les paramètres nommés, par exemple dans ''script.ps1 -nom Mike'', c'est à l'aide de la fonction ''param()'': 
-  param($nom) 
-  return "Le nom est $nom." 
- 
- 
-====== Logique ====== 
- 
- 
-===== Conditions ===== 
- 
-==== If ==== 
- 
- 
-L'instruction logique la plus simple est le ''if''. 
- 
-<code> 
-param($number) 
-if ($number -eq 5) { 
-    Write-Output "Vous avez deviné le chiffre magique." 
-} 
-else { 
-    Write-Output "Vous n'avez pas trouvé." 
-} 
-</code> 
- 
-==== Switch ==== 
- 
-Au lieu du ''if'', on peut utiliser le ''switch'' s'il y a beaucoup de résultats possibles. 
- 
-<code> 
-switch (expression) 
-{ 
-    {test} {code block} 
-    value {code block} 
-    default {code block} 
-} 
-</code> 
- 
- 
-<code> 
-$today=get-date 
- 
-switch ($today.day) 
-{ 
-  1 { Write-Host "Jour de paie!" } 
-  1 { Write-Host "Arroser les plantes." } 
-  5 { Write-Host "Rappel pour payer les factures." } 
-  10 { Write-Host "Sortir les ordures." } 
-  default { Write-Host "Rien à se rappeler aujourd'hui." } 
-} 
-</code> 
- 
- 
-==== Opérateurs ==== 
- 
-Les opérateurs suivant ne sont pas sensibles à la casse par défaut. 
- 
-^ Opérateur     ^ Description  ^ 
-| ''-eq''           | Equal                                                                     | 
-| ''-ne''           | Not equal                                                                 | 
-| ''-ge''           | Greater than or equal                                                     | 
-| ''-gt''           | Greater than                                                              | 
-| ''-lt''           | Less than                                                                 | 
-| ''-le''           | Less than or equal                                                        | 
-| ''-like''         | Wildcard comparison                                                       | 
-| ''-notlike''      | Wildcard comparison                                                       | 
-| ''-match''        | Regular expression comparison                                             | 
-| ''-notmatch''     | Regular expression comparison                                             | 
-| ''-replace''      | Replace operator                                                          | 
-| ''-contains''     | Containment operator                                                      | 
-| ''-notcontains''  | Containment operator                                                      | 
-| ''-shl''          | Shift bits left (PowerShell 3.0)                                          | 
-| ''-shr''          | Shift bits right – preserves sign for signed values.(PowerShell 3.0)      | 
-| ''-in''           | Like ''-contains'', but with the operands reversed.(PowerShell 3.0)       | 
-| ''-notin''        | Like ''-notcontains'', but with the operands reversed.(PowerShell 3.0)    | 
- 
- 
-Pour avoir une comparaison sensible à la casse, il faut préfixer d'un ''c'' devant l'opérateur, par exemple ''-ceq'' au lieu de ''-eq''. 
- 
- 
-Source : [[http://ss64.com/ps/syntax-compare.html|Comparison Operators]] 
-===== Boucles ===== 
- 
- 
- 
- 
- 
- 
-====== Gestion d'erreurs ====== 
- 
- 
- 
- 
-===== Trap statement ===== 
- 
-L'utilisation du //trap statement// (''$_'') est rarement utilisé sauf quand la verison de PowerShell disponible n'est que 1.0.  Comme c'est rarement utilisé, on documentera pas beaucoup cet aspect de PowerShell, seulement en montrant un exemple. 
- 
-<code> 
-function test-trap { 
-    trap { 
-        "Une erreur est survenue: $_" 
-    } 
-     
-    $var = 1/0 
-    Write-Host "Fin de la fonction" 
-} 
-</code> 
- 
-On peut utiliser ''continue'' ou ''break'' dans le bloc du ''trap'' sous la ligne ''%%"Une erreur est survenue: $_"%%'' La mention ''continue'' aura pour effet de continuer l'exécution du script, sinon ''break'' arrêtera son exécution. 
- 
- 
-===== Try/Catch ===== 
- 
-Dans PowerShell 2.0 ou plus, on peut utiliser les ''try'', ''catch'' et ''finally'' dans les scripts. 
- 
- 
-<code> 
-try { 
-    $var=1/0 
-    "La fonction s'est terminée correctement" 
-} 
-catch [System.Management.Automation.CommandNotFoundException] { 
-    "Impossible de trouver la commande $_" 
-} 
-catch { 
-    "Quelque chose est arrivé : $_" 
-} 
-finally { 
-    "Ceci s'exécute toujours." 
-} 
-</code> 
- 
- 
-===== ErrorAction ===== 
- 
- 
- 
- 
- 
-===== Code de sortie ===== 
- 
-  commande_erreur.exe 
-  exit $LASTEXITCODE 
-   
-   
-====== Commandes ====== 
- 
-===== Système de fichiers ===== 
- 
-  Param($path) 
-  new-item -ItemType Directory -Name $path 
-  cd $path 
- 
- 
- 
-====== Commandes utiles ====== 
- 
- 
-===== Exécution ===== 
- 
-Pour l'arrêt momentané de l'exécution: 
-  Start-Sleep -Seconds 600 
- 
- 
- 
- 
-====== Exemples ====== 
- 
- 
-  iwr https://domain.org/script.ps1 -UseBasicParsing | iex 
- 
- 
- 
- 
- 
- 
- 
  
systemes_dexploitation/windows/all/powershell.1478641572.txt.gz · Dernière modification : 2022/02/02 00:42 (modification externe)