27Jul

Geek School: apprentissage des variables PowerShell, entrée et sortie

Au fur et à mesure que nous passons d'une simple exécution de commandes à l'écriture de scripts complets, vous aurez besoin d'un emplacement temporaire pour stocker les données.

Apprendre à automatiser Windows avec PowerShell

  • Apprendre à utiliser des applets de commande dans PowerShell
  • Apprendre à utiliser des objets dans PowerShell
  • Apprentissage de la mise en forme, du filtrage et de la comparaison dansPowerShell
  • Apprendre à utiliser Remoting dans PowerShell
  • Utiliser PowerShell pour obtenir des informations sur l'ordinateur
  • Travailler avec des collections dans PowerShell
  • Et restez à l'écoute pour le reste de la série toute la semaine.

    Variables

    La plupart des langages de programmation permettent l'utilisation de variables, qui sont simplement des conteneurs contenant des valeurs. Dans PowerShell, nous avons aussi des variables et elles sont vraiment faciles à utiliser. Voici comment créer une variable appelée "FirstName" et lui donner la valeur "Taylor".

    $ FirstName = "Taylor"

    La première chose que la plupart des gens semblent demander est pourquoi nous mettons un signe dollar devant le nom des variables, et c'est en fait une très bonne question. Vraiment, le signe du dollar est juste un petit indice à l'interpréteur que nous voulons accéder au contenu de la variable( pensez à ce qu'il y a dans le conteneur) et non au conteneur lui-même. Dans PowerShell, les noms de variables n'incluent pas le symbole dollar, ce qui signifie que dans l'exemple ci-dessus, le nom de la variable est en réalité "Prénom".

    Dans PowerShell, vous pouvez voir toutes les variables que vous avez créées dans la variable PSDrive.

    Variable gci:

    Cela signifie que vous pouvez également supprimer une variable du shell à tout moment:

    Remove-Item Variable: \ FirstName

    Les variables ne doivent pas non plus contenir un seul objet;vous pouvez tout aussi bien stocker plusieurs objets dans une variable. Par exemple, si vous souhaitez stocker une liste de processus en cours dans une variable, vous pouvez simplement lui affecter la sortie de Get-Process.

    $ Proc = Get-Process

    L'astuce pour comprendre cela est de se souvenir que le côté droit du signe égal est toujours évalué en premier. Cela signifie que vous pouvez avoir un pipeline entier sur le côté droit si vous le souhaitez.

    $ CPUHogs = Obtenir-traiter |Sort CPU -Descendant |select -First 3

    La variable CPUHogs contient maintenant les trois processus en cours utilisant le plus de CPU.

    Lorsque vous avez une variable contenant une collection d'objets, il y a certaines choses à connaître. Par exemple, si vous appelez une méthode sur la variable, elle sera appelée sur chaque objet de la collection.

    $ CPUHogs. Kill()

    Qui tuerait les trois processus dans la collection. Si vous voulez accéder à un seul objet dans la variable, vous devez le traiter comme un tableau.

    $ CPUHogs [0]

    Faire cela vous donnera le premier objet dans la collection.

    Ne vous faites pas prendre!

    Les variables dans PowerShell sont faiblement typées par défaut, ce qui signifie qu'elles peuvent contenir n'importe quel type de données, cela semble attirer de nouveaux arrivants à PowerShell tout le temps!

    $ a = 10

    $ b = '20'

    Nous avons donc deux variables, l'une contient une chaîne et l'autre un entier. Alors que se passe-t-il si vous les ajoutez? Cela dépend de l'ordre dans lequel vous les ajoutez.

    $ a + $ b = 30

    $ b + $ a = 2010

    Dans le premier exemple, le premier opérande est un entier, $ a, donc PowerShell pense que pense quevous essayez de faire des maths et donc essayez de convertir tous les autres opérandes en entiers. Cependant, dans le second exemple, le premier opérande est une chaîne, PowerShell convertit simplement le reste des opérandes en chaînes et les concatène. Les scripteurs plus avancés empêchent ce type de getcha en transposant la variable au type attendu.

    [int] $ Number = 5
    [entier] $ Number = '5'

    Ci-dessus, la variable numéro contenant un objet entier avec une valeur de 5.

    Entrée et sortie

    Parce que PowerShell est destiné à automatiser les choses, vous allez vouloir éviter d'inviter les utilisateurs à obtenir des informations dans la mesure du possible. Cela dit, il y aura des moments où vous ne pouvez pas l'éviter, et pour ces moments nous avons la cmdlet Read-Host. L'utiliser est vraiment simple:

    $ FirstName = Read-Host -Prompt 'Entrez votre prénom'

    Tout ce que vous entrez sera sauvegardé dans la variable.

    L'écriture est tout aussi facile avec la cmdlet Write-Output.

    Write-Output "Comment Geek Rocks!"

    Rejoignez-nous demain où nous attachons tout ce que nous avons appris ensemble!