Les données exportées dans des fichiers textes au format brut, CSV ou JSON peuvent être relues et chargées en mémoire dans des objets accessibles par les scripts PowerShell.
La cmdlet Get-Content permet de relire un fichier texte et d'obtenir un tableau. Chaque élément du tableau correspond à une ligne du fichier.
Soit un fichier texte “fichierA.txt” avec le contenu :
A01 A02 A03 A04
Pour charger le contenu du fichier “fichierA.txt”
$lines = Get-Content -Path '.\fichierA.txt' # Afficher le nombre de lignes $lines.Length 4 # Accès au contenu de la première ligne $lines[0] A01 # Afficher toutes les lignes foreach ( $line in $lines ){ Write-Output "$line" }
De nombreuses applications proposent un formatage des données en CSV. La cmdlet Import-CSV permet de relire et d'accéder à ces données.
Ci-dessous un exemple de fichier texte formaté en CSV
FirstName,LastName,UserID,Department John,Doe,u001023,Sales Judith,Arrow,u025351,Sales Elon,Pusk,u145237,RD
# Importe les données du fichier aUsersFile.csv $users = Import-Csv '.\aUsersFile.csv' # La variable $users référence un tableau # chaque élément du tableau correspond à un enregistrement CSV $users.Length 3 # Chaque élément du tableau est un objet ayant pour noms d'attributs # les noms des colonnes du fichier (première ligne du fichier CSV) $users[0].FirstName John
Quelques options usuelles pour la cmdlet Import-Csv :
Le XML permet de décrire et stocker des données structurées de façon plus complexes que le CSV.
La cmdlet Import-Clixml permet de récupérer des données à partir d'un fichier XML et produit un tableau d'objets. Les options -First
et -Skip
permettent de limiter l'import.
$users = Import-Clixml '.\aUsersFile.xml'
Comme XML, le formatage JSON permet de représenter des données complexes cependant sa syntaxe est moins verbeuse. Il est largement utilisé.
La cmdlet ConvertFrom-Json peut être combinée avec Get-Content pour lire un fichier contenant des objets JSON et obtenir en objets en mémoire :
$users = Get-Content '.\aUsersFile.json' | ConvertFrom-Json