• [^] # Re: Tu vends du rêve

    Posté par . En réponse au journal Microsoft: Powershell libéré. Évalué à 4.

    Get-NetIPAddress | select ipaddress

    Mais ces exemples sont un peu vains, le PowerShell est un langage orienté objets et plus haut niveau que Bash, avec une syntaxe plus clean.

    A noter l'autocomplétion très bien foutue du PowerShell sous Windows 10, avec un équivalent ncurse proposant les différentes options et arguments. Faites ctrl-espace pour l'essayer, le menu est ensuite navigable au clavier.

    Mieux, l'autocomplétion Intellisense. Par exemple :

    $svc = get-service
    $[svc]. < tab >

    Et hop, toutes les méthodes et propriétés applicables aux objets de la variable s'affichent, ici des services.

    Autre truc sympa, certaines méthodes de sysadmin. Exemple, supprimer tous les programmes contenant "runtime" :

    $apps = Get-WmiObject win32_product | where name -match "runtime"
    $apps | %{ $_.uninstall}

    Dans cet exemple PS voit que $apps est de type array, juste l'invoquer va donc envoyer les entrées de l'array dans un pipe, dont la sortie sera énumérée par une boucle foreach (%).
    $_ est la sortie du pipe, que l'on peut réutiliser autant que l'on souhaite.

    Evidemment, on pourrait autant faire un
    for i in $(rpm -qa | grep runtime); do rpm -e $i; done
    Mais au niveau syntaxe, c'est autrement moins bien foutu.

    Autre truc sympa en PS, le typage statique :
    [int]$i = 42
    $test = 42ドル.tostring() + 2
    $test
    422
    $test.GetType()
    String

    Et pour ne rien oublier, il y a aussi la longue liste d'alias linux. Faites un man ps pour le fun. :-)