Archives de catégorie : PowerShell

Les liens de la semaine – Édition #197

Développement

.NET

Web

Technologie

Science et autres

Petite astuce de dépannage : utiliser PowerShell pour manipuler du JSON

Dans les Liens de la semaine #130, le lien vers un défi visant à manipuler un fichier CSV a été mentionné. En quelques mots, ce défi consiste à trouver une façon de transformer une source de données sous le format JSON en un fichier CSV ayant un format prédéfini.

Le but de l’exercice était de voir et comparer les solutions qu’auraient prises certains développeurs. Si vous allez lire les commentaires en réponse, vous verrez que ça va dans tous les sens. Pratiquement chacun des langages populaires a sa solution. Certaines étant plus originales que d’autres.

Ce qui m’intéresse dans ce genre de défis est de pouvoir en apprendre plus sur les langages de programmation que j’utilise. C’est toujours dans ces situations-là qu’on en apprend le plus. Cette fois-ci, je n’ai pas été particulièrement impressionné par la solution C#. En .NET, il n’y a pas vraiment de tour de magie possible pour lire un fichier CSV et de l’écrire sur disque.

Là où j’ai été surpris est la solution écrite en PowerShell. Je savais que PowerShell a tout en place pour permettre, par exemple, un administrateur réseau d’avoir un plein contrôle de votre poste de travail. Dans ce contexte, PowerShell est comme le ciment qui fait en sorte que les briques des versions récentes de Windows puissent tenir ensemble.

Pour scripter sous Windows, c’est avec PowerShell que ça se passe. Le langage est établi au point qu’il fait partie intégrante de la prochaine version d’ASP.NET.

Ce qui m’a impressionné c’est d’apprendre que PowerShell a tout en place pour manipuler du JSON et des fichiers CSV. J’ai trouvé cela sincèrement cool!

L’essayer c’est super simple. Il suffit d’utiliser la commande suivante:

(Invoke-WebRequest -Uri http://jsonplaceholder.typicode.com/posts | ConvertFrom-Json) | ? title | select id,title | epcsv csv.csv -not

C’est aussi simple que cela!

Il y a même plus que la manipulation de fichiers JSON et CSV dans PowerShell. Il suffit d’aller jeter un coup d’oeil à la liste des Cmdlets sous le module Microsoft.PowerShell.Utility. En guise de conclusion et de vous inspirer, voici quelques exemples:

  • ConvertTo-Html: permets la conversion en HTML d’un objet. La même chose est possible avec ConvertTo-Xml
  • Get-FileHash: retourne le hash d’un fichier
  • Get-UICulture: donne de l’information sur la culture courante
  • Tee-Object: permets de rediriger le résultat d’une commande vers un fichier et une autre commande

Bon scripting!