Wie man CSV-Dateien in ein Array in PowerShell importiert

  1. Die durch Kommata getrennte Werte-Datei
  2. Verwenden Sie das Import-CSV Cmdlet, um CSV-Dateien in ein Array in PowerShell zu importieren
  3. Verwenden Sie das Get-Content und ConvertFrom-Csv Cmdlet, um CSV-Dateien in ein Array in PowerShell zu importieren
  4. Verwenden Sie die System.IO.File und ConvertFrom-Csv Cmdlet, um CSV-Dateien in ein Array in PowerShell zu importieren
  5. Fazit
Wie man CSV-Dateien in ein Array in PowerShell importiert

CSV (Comma-Separated Values) Dateien dienen als grundlegendes Datenformat, das Informationen in einer tabellarischen Struktur mit durch Kommas getrennten Feldern kapselt. Obwohl sie häufig mit Tabellenkalkulationssoftware in Verbindung gebracht werden, findet ihre einfache, aber vielseitige Natur Anwendung auf verschiedenen Plattformen, einschließlich PowerShell.

Im PowerShell-Scripting ist es entscheidend, CSV-Daten effizient zu lesen und zu verarbeiten, um Automatisierungs- und Datenmanipulationsaufgaben durchzuführen. Dieser Artikel untersucht drei Methoden—Import-CSV, Get-Content Cmdlets und System.IO.File Klasse mit ConvertFrom-Csv Cmdlet—zum Importieren von CSV-Dateien in Arrays und bietet Einblicke in deren Verwendung, Vorteile und Anwendungsszenarien.

Die durch Kommata getrennte Werte-Datei

Eine CSV (Comma-Separated Values) Datei enthält Daten oder Mengen, die durch Kommas getrennt sind. Dies ermöglicht es, die Daten in einem tabellarischen Format zu speichern.

Benutzer können CSV-Dateien mit den meisten Tabellenkalkulationsprogrammen nutzen, wie Microsoft Excel oder Google Tabellen. Wenn wir sie jedoch in Software öffnen, die keine tabellarischen Formate unterstützt, werden die Daten durch Kommas getrennt, was PowerShell verwenden kann, um Werte in Arrays zu trennen.

Zum Beispiel, unten ist ein rohes CSV-Format mit zwei Spalten.

users.csv Datei:

Name,Salary
John,1000
Paul,2000
Mary,1500
Matt,3000

Verwenden Sie das Import-CSV Cmdlet, um CSV-Dateien in ein Array in PowerShell zu importieren

Der Import-CSV Befehl in Windows PowerShell erstellt eine Tabelle ähnlicher benutzerdefinierter Objekte aus den in der obigen CSV-Datei vorhandenen Elementen.

Im folgenden Windows PowerShell-Skript verwenden wir den Import-CSV Befehl, um die Daten der CSV-Datei einer Windows PowerShell Array-Typvariablen zuzuweisen.

$users = Import-Csv path\users.csv
$users

Wir beginnen mit der Verwendung des Import-Csv Cmdlets, um Daten aus einer CSV-Datei zu lesen, die sich unter path\users.csv befindet. Dieses Cmdlet liest den Inhalt der CSV-Datei und wandelt ihn in ein PowerShell-Objekt um.

Dann weisen wir die importierten CSV-Daten der Variable $users zu. Diese Variable hält nun den Inhalt der CSV-Datei als Array von Objekten, wobei jedes Objekt eine Zeile aus der CSV-Datei darstellt.

Nach der Ausführung können wir sehen, dass die Werte der CSV-Datei in ein Format verwandelt wurden, das als ArrayList-Objekt bezeichnet wird.

Ausgabe:

CSV-Dateien in ein Array in PowerShell lesen - Ausgabe 1

Zugriff auf Elemente nach dem Importieren von CSV-Dateien in ein Array in PowerShell

Wenn wir eine CSV-Datei mit Import-Csv in PowerShell importieren, wird jede Zeile der CSV-Datei als Objekt dargestellt, und die gesamten CSV-Daten werden als Array dieser Objekte gespeichert. Um auf einzelne Zeilen oder Elemente innerhalb der CSV-Daten zuzugreifen, verwenden wir die Array-Indizierung.

$users = Import-Csv path\users.csv
$users[0]

Wir beginnen mit dem Importieren einer CSV-Datei namens users.csv, die sich am angegebenen Pfad befindet. Wir verwenden das Import-Csv Cmdlet zu diesem Zweck.

Dieses Cmdlet liest den Inhalt der CSV-Datei und wandelt ihn in ein PowerShell-Objekt um.

Nach dem Importieren der CSV-Datei möchten wir auf die erste Zeile der CSV-Daten zugreifen. Dies erreichen wir durch die Verwendung von Array-Indizierung.

In PowerShell beginnt die Array-Indizierung bei 0, sodass $users[0] auf das erste Element (oder die Zeile) im $users Array verweist.

Ausgabe:

CSV-Dateien in Array in PowerShell lesen - Ausgabe 2

Wir können auf die Eigenschaft eines bestimmten Elements aus dem Windows PowerShell-Array zugreifen, indem wir den Spaltennamen als Eigenschaftsnamen behandeln, wie im folgenden Beispiel.

$users = Import-Csv path/users.csv
$users[0].Name

Nachdem wir die CSV-Datei importiert und ihren Inhalt in der Variable $users gespeichert haben, fahren wir fort, um eine bestimmte Eigenschaft der ersten Zeile der CSV-Daten abzurufen. In diesem Fall möchten wir den Wert der Name-Eigenschaft aus der ersten Zeile abrufen.

Indem wir $users[0].Name angeben, greifen wir auf die Name-Eigenschaft des Objekts zu, das die erste Zeile der CSV-Daten darstellt. Dies ermöglicht es uns, den Wert abzurufen, der mit der Name-Spalte in der CSV-Datei für die erste Zeile verbunden ist.

Ausgabe:

CSV-Dateien in ein Array in PowerShell lesen - Ausgabe 3

Wir können die Anzahl der Elemente in einem Array mit der Count Eigenschaft unten zählen.

$users = Import-Csv path/users.csv
$users.Count

Nachdem wir die CSV-Datei importiert und ihren Inhalt in der Variable $users gespeichert haben, möchten wir die Anzahl der Elemente (Zeilen) im Array bestimmen.

Indem wir $users.Count verwenden, greifen wir auf die Count-Eigenschaft des Arrays zu, das in der Variable $users gespeichert ist. Diese Eigenschaft gibt die Anzahl der Elemente (Zeilen) im Array zurück.

Ausgabe:

CSV-Dateien in ein Array in PowerShell lesen - Ausgabe 4

Verwenden Sie das Get-Content und ConvertFrom-Csv Cmdlet, um CSV-Dateien in ein Array in PowerShell zu importieren

Ein einfacher Ansatz, um diese Aufgabe zu erledigen, besteht darin, die Get-Content und ConvertFrom-Csv Cmdlets zu verwenden. Mit dieser Methode können wir den Inhalt einer CSV-Datei als Text lesen, indem wir Get-Content verwenden und ihn dann mit ConvertFrom-Csv in PowerShell-Objekte umwandeln, wodurch ein Array von Objekten geschaffen wird, die jede Zeile der CSV-Daten darstellen.

$content = Get-Content -Path "C:\path\data.csv"
$array = $content | ConvertFrom-Csv
$array

Wir beginnen mit der Verwendung von Get-Content, um den Inhalt der CSV-Datei am angegebenen Pfad zu lesen und in der Variable $content zu speichern.

Als nächstes leiten wir den Inhalt der in $content gespeicherten CSV-Datei an ConvertFrom-Csv weiter. Dieses Cmdlet wandelt den CSV-Text in PowerShell-Objekte um und speichert sie in der Variable $array.

Nach der Ausführung können wir sehen, dass die Werte der CSV-Datei in ein Format verwandelt wurden, das als ArrayList-Objekt bezeichnet wird.

Ausgabe:

CSV-Dateien in ein Array in PowerShell einlesen - Ausgabe 5

Verwenden Sie die System.IO.File und ConvertFrom-Csv Cmdlet, um CSV-Dateien in ein Array in PowerShell zu importieren

Die System.IO.File Klasse ermöglicht das Lesen des Inhalts von CSV-Dateien, die dann mit dem ConvertFrom-Csv Cmdlet in PowerShell-Objekte umgewandelt werden. Diese Methode bietet nicht nur Flexibilität, sondern sorgt auch für eine einfache Handhabung, sodass Benutzer CSV-Daten nahtlos in ihren PowerShell-Skripten verwalten können.

$content = [System.IO.File]::ReadAllText("C:\path\data.csv")
$array = $content | ConvertFrom-Csv
$array

Wir verwenden [System.IO.File]::ReadAllText, um den Inhalt der CSV-Datei am angegebenen Pfad zu lesen und in der Variable $content zu speichern.

Als nächstes leiten wir den Inhalt der in $content gespeicherten CSV-Datei an ConvertFrom-Csv weiter. Dieses Cmdlet wandelt den CSV-Text in PowerShell-Objekte um und speichert sie in der Variable $array.

Nach der Ausführung können wir sehen, dass die Werte der CSV-Datei in ein Format verwandelt wurden, das als ArrayList-Objekt bezeichnet wird.

Ausgabe:

CSV-Dateien in ein Array in PowerShell lesen - Ausgabe 6

Fazit

Im PowerShell-Scripting ist es unerlässlich, CSV-Daten nahtlos zu handhaben, um eine effektive Automatisierung und Datenverarbeitung zu gewährleisten. Durch die Nutzung der Import-CSV, Get-Content Cmdlets oder der System.IO.File Klasse mit dem ConvertFrom-Csv Cmdlet können Benutzer CSV-Dateien effizient in Arrays einlesen, wodurch sie Daten mit Leichtigkeit und Flexibilität manipulieren können.

Ob beim Extrahieren von Erkenntnissen aus großen Datensätzen oder beim Automatisieren sich wiederholender Aufgaben, diese Methoden bieten leistungsstarke Werkzeuge für PowerShell-Entwickler. Mit einem klaren Verständnis dieser Techniken können Benutzer die Kraft von CSV-Daten in ihren Skripten nutzen, wodurch Arbeitsabläufe optimiert und die Produktivität gesteigert wird.

Genießen Sie unsere Tutorials? Abonnieren Sie DelftStack auf YouTube, um uns bei der Erstellung weiterer hochwertiger Videoanleitungen zu unterstützen. Abonnieren
Marion Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn

Verwandter Artikel - PowerShell Array

Verwandter Artikel - PowerShell CSV