Exportieren von Daten in CSV in PowerShell

Migel Hewage Nimesha 1 April 2022
  1. Daten nach CSV exportieren Mit dem PowerShell-Cmdlet Export-CSV
  2. Exportieren von Daten in CSV mit dem PowerShell-Cmdlet ConvertTo-CSV
Exportieren von Daten in CSV in PowerShell

Eine CSV-Datei ist nur eine durch Trennzeichen getrennte Textdatei mit einem bestimmten Format, das auf ihren Inhalt angewendet wird. Das Format ist einer einfachen Tabellenstruktur sehr ähnlich, wie im folgenden Beispiel gezeigt.

Beispielsweise,

Name, NIC, Phone

John, 394829G,  +671392392

Risabh, 32909340J, +12328833

Die CSV ist die Kurzform für Comma Separated Values. Wie der Dateityp (CSV) vermuten lässt, werden Datenwerte durch Kommas getrennt. Es stehen verschiedene Tools zur Verfügung, um CSV-Dateien mit Daten zu generieren.

In diesem Artikel besprechen wir, wie Sie Daten in eine CSV-Datei in PowerShell exportieren.

Daten nach CSV exportieren Mit dem PowerShell-Cmdlet Export-CSV

Das Export-CSV ist eines der PowerShell-Cmdlets, mit denen Daten im CSV-Format exportiert werden können. Dieses Cmdlet ist relativ einfach zu verwenden, und einige Eigenschaften sind ebenfalls verfügbar.

Die Cmdlet-Syntax Export-CSV

<data_objects/content> | Export-CSV -Path <path> 
  • <data_objects/content>: Die Datenobjekte/Inhalte, die dem Export-CSV-Cmdlet zugeführt werden.
  • Export-CSV: Das Cmdlet, das für den Export von Daten im CSV-Format zuständig ist.
  • -Path: Der Pfad, wo die csv-Datei gespeichert werden soll.

Beispiel 01

Wir werden das Cmdlet Get-Process verwenden, um einige Datenobjekte zurückzugeben, und diese können an das Cmdlet Export-CSV übergeben werden, um sie im CSV-Format zu exportieren.

Get-Process

Ausgabe:

Handles	NPM(k)	PM(K)	WS(K)	CPU(s)	Id		SI 		ProcessName
313		14		3712	10756	7.69	39500	0		ApplicationFrameHost
507		30		22864	22836	2.11	18156	2		armsvc

Es können mehrere Prozessobjekte zurückgegeben werden. Wir können den Pipe-Operator (|) verwenden, um die zurückgegebenen Objekte dem Cmdlet Export-CSV zuzuführen. Anschließend können Sie den exportierten CSV-Inhalt mit dem Cmdlet Get-Content prüfen.

Get-Process | Export-CSV -Path .\ProcessObjects.csv
Get-Content -Path .\ProcessObjects.csv

Ausgabe:

"ProcessName","SI","Handles","VM","WS","PM","NPM", .....
"armsvc","2","511","2203597099008","35364864","21979136","30048", ...
"xyz","0","501","299393939","9982824","0021000","393393", ...

Es sind einige nützliche Eigenschaften verfügbar, um das Standardverhalten des Cmdlets Export-CSV zu ändern.

Beispiel 02

Get-Process | Export-CSV -Path .\ProcessObjects.csv -Delimiter ';'
Get-Content -Path .\ProcessObjects.csv

Ausgabe:

"ProcessName";"SI";"Handles";"VM";"WS";"PM";"NPM"; .....
"armsvc";"2";"511";"2203597099008";"35364864";"21979136";"30048"; ...

Die Option -Delimiter ändert das Trennzeichen vom Standard , auf das angegebene Symbol.

Exportieren von Daten in CSV mit dem PowerShell-Cmdlet ConvertTo-CSV

Das Cmdlet ConvertTo-CSV ist dem oben besprochenen Cmdlet Export-CSV fast ähnlich. Der einzige Unterschied zwischen den beiden ist, dass das Cmdlet Export-csv die CSV-Strings in einer Datei speichert, aber bei ConvertTo-CSV ist dies nicht der Fall. Es gibt nur die durch Kommas getrennten Wert-Strings zurück.

Die ConvertTo-CSV-Cmdlet-Syntax

<data_objects/content> | ConvertTo-CSV 
  • <data_objects/content>: Die Datenobjekte/Inhalte, die dem Cmdlet ConvertTo-CSV zugeführt werden.
  • ConvertTo-CSV: Das Cmdlet, das für die Rückgabe von CSV-Strings verantwortlich ist.

Beispiel

Get-Process | ConvertTo-Csv

Ausgabe:

"ProcessName","SI","Handles","VM","WS","PM","NPM", .....
"armsvc","2","511","2203597099008","35364864","21979136","30048", ...
"xyz","0","501","299393939","9982824","0021000","393393", ...p

Daher sind die beiden Cmdlets Export-CSV und ConvertTo-CSV nützliche Tools zum Generieren von CSV-formatierten Daten mit PowerShell.

Migel Hewage Nimesha avatar Migel Hewage Nimesha avatar

Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.

Verwandter Artikel - PowerShell CSV