Wie man in PowerShell auf CSV exportiert

Wie man in PowerShell auf CSV exportiert
Der CSV (Comma Separated -Werte) ist eine Möglichkeit, Daten in Klartextdateien zu speichern. Es handelt sich um eine effektive Methode, um strukturierte Informationen zu teilen, ähnlich wie eine Tabelle. Es ist ein universelles Format, das von zahlreichen Büro- und Datenbankanwendungen unterstützt wird.

Der Begriff CSV hat auch andere Bedeutungen, z.

In diesem Leitfaden zeigen wir, wie Daten in CSV in PowerShell exportieren können.

Die CSV -Dateistruktur

Das CSV -Format folgt einer sehr einfachen Struktur. Jede CSV -Datei hat ".CSV ”als Dateierweiterung. Hier habe ich eine Beispiel -CSV -Datei generiert, die enthält

$ CAT -Probe.CSV

Wie wir sehen können, enthält jede Zeile mehrere von Kommas getrennte Werte. Es gibt keine Begrenzung, wie viele Einträge eine CSV -Datei enthalten kann.

Die Einfachheit der Struktur ist das Schlüsselmerkmal. Das CSV -Format ist so konzipiert, dass es leicht verwendet werden kann, um Daten in andere Programme zu exportieren. Das Ergebnis ist auch menschlich lesbar und kann mit einem beliebigen Texteditor angezeigt werden. Office -Apps wie MS Excel, Calc usw., Unterstützen Sie auch standardmäßig CSV.

Exportieren von PowerShell nach CSV

PowerShell ist eine mächtige Hülle und eine Skriptsprache. Es unterstützt zahlreiche grundlegende und fortschrittliche Funktionen, einschließlich des Exportierens verschiedener Daten in das CSV -Format.

Ähnlich wie bei jeder anderen Shell hat PowerShell ihre eigenen Befehle, die CMDLets genannt werden. Um nach CSV zu exportieren, wird PowerShell mit einem dedizierten CMDLet geliefert Export-CSV. Es dauert ein Objekt als Eingabe und exportiert es in eine CSV -Datei.

Aufgrund der einfachen Struktur könnte es auch mit dem erreicht werden Set-In-Inhalt cmdlet. Es erfordert jedoch, dass Sie die CSV -Struktur manuell definieren. Verwendung Export-CSV reduziert die Arbeitsbelastung erheblich.

Auf der Help-Seite von Export-CSV werden alle unterstützten Befehle angezeigt.

$ help export-csv

Ein praktisches Beispiel wäre der Exportieren der Liste der laufenden Prozesse. Es kann in bestimmten Debugging-/Überwachungsszenarien nützlich sein. Um die Prozesseliste zu erhalten, verwenden wir das CMDLET Get-Process.

$ Get-Process

Jetzt den Ausgang an die Ausgabe angeben Export-CSV.

$ Get-Process | Export -CSV -Path/Home/Viktor/Desktop/Prozesse.CSV

Hier beschreibt das Flag „-Path“ den Speicherort, um die generierte CSV-Datei zu speichern. Verwenden Sie das CMDLET, um den Inhalt der CSV -Datei zu überprüfen Treffen.

$ GET-Content/Home/Viktor/Desktop/Prozesse.CSV

Benutzerdefinierte Trennzeichen

Für jede CSV -Datei ist es Standard, Comma (,) als Trennzeichen zu verwenden. Möglicherweise möchten Sie den Trennzeichen in bestimmten Situationen jedoch in etwas anderes als ein Komma ändern. Das Export-CSV-CMDLet unterstützt das Einstellen eines benutzerdefinierten Trennzeichens für die CSV-Datei. Es kann jeder Charakter sein.

Im folgenden Beispiel verwenden wir ein Semikolon (;) als Trennzeichen.

$ Get-Process | Export -csv -notypeinformation -delimiter ";"; -Path/Home/Viktor/Desktop/Prozesse.CSV

Überprüfen Sie die Ausgabe des Befehls.

$ GET-Content/Home/Viktor/Desktop/Prozesse.CSV

Anhang an vorhandene CSV -Datei

Der Export-CSV CMDLET unterstützt das Hinzufügen von Inhalten zu vorhandenen CSV -Dateien. Es kann helfen, Daten in eine einzelne Datenbank zu kompilieren.

Fügen Sie zum Anhängen das Flag "-Append" hinzu. Verwenden Sie den Speicherort der vorhandenen CSV-Datei als Wert für "-Path".

$ Get-Process | Export -CSV -Append -Path/Home/Viktor/Desktop/Prozesse.CSV

Auswählen von Eigenschaften zum Schreiben in CSV

Schauen wir uns zuerst einen kurzen Blick auf die Ausgabe von Get-Process an.

$ Get-Process

Hier zeigt jede einzelne Spalte eine bestimmte Art von Informationen über die aktuell ausgeführten Prozesse. Jede der Spalten repräsentiert eine Eigenschaft des zugehörigen Prozesses. Bisher haben wir mit allen Eigenschaften der Prozesse gearbeitet (übertragen sie in eine CSV -Datei). Allerdings sind für jede einzelne Situation nicht alle Eigenschaften erforderlich.

Wir können einen Zwischenfilter hinzufügen, um nur einige ausgewählte Eigenschaften zu erhalten. Dazu nutzen wir die Hilfe eines anderen CMDLET Select-Object.

Wir werden den Prozessnamen (Prozessname) und die ID (ID) im folgenden Beispiel nur exportieren.

$ Get-Process | Select -Object -Property ProcessName, ID | Export -CSV -notypeinformation -Path/Home/Viktor/Desktop/Prozesse.CSV
$ GET-Content/Home/Viktor/Desktop/Prozesse.CSV

Kein Überschreiben

Wenn es sich nicht an die vorhandene Datei angehängt hat, überschreibt Export-CSV die vorhandene Datei standardmäßig über. In vielen Situationen kann dies eine ungerechtfertigte Löschung wichtiger Protokolle verursachen. Um solche Unfälle zu vermeiden, können wir Export-CSV anweisen, eine vorhandene Datei standardmäßig nicht zu überschreiben.

Fügen Sie dazu die Flagge "-noclobber" hinzu.

$ Get-Process | Export -CSV -noclobber -Path/Home/Viktor/Desktop/Prozesse.CSV

Wie Sie sehen können, wirft es nun einen Fehler aus, der erwähnt wird, dass die Datei bereits vorhanden ist.

Überschreibende schreibgeschützte Dateien

Standardmäßig erlaubt eine schreibgeschützte Datei keine Bearbeitung. Wir können jedoch PowerShell verwenden, um die Bearbeitung zur Datei zu erzwingen. Diese Funktion wird direkt in Export-CSV eingebunden. Die Art und Weise, wie es getan wird.

Verwenden Sie, um die vorhandene schreibgeschützte Datei zu überschreiben, das Flag "-Force".

$ Get-Process | Export -CSV -Append -force -Path/Home/Viktor/Desktop/Prozesse.CSV

Dateikodierung

Für die Dateikodierung verwendet Export-CSV UTF-8 standardmäßig. Es ist die universelle Codierung für alle Textdateien. In bestimmten Situationen ist jedoch unterschiedliche Codierung sinnvoller. Zum Glück unterstützt Export-CSV die Definition spezifischer Codierung.

Um eine bestimmte Codierung anzugeben, verwenden Sie das Flag "-Coding".

$ Get-Process | Export -CSV -coding -Pfad/Home/Viktor/Desktop/Prozesse.CSV

Hier ist eine Liste aller unterstützten Codierungsformate.

  • ASCII
  • Unicode
  • UTF7
  • UTF8
  • UTF8BOM
  • UTF8NOBOM
  • UTF32
  • Bigendianunicode

Abschließende Gedanken

Das Export-CSV-CMDLet in PowerShell ist ein leistungsstarkes Instrument zum Exportieren von Informationen in das CSV-Format. Dieser Leitfaden zeigt einige Möglichkeiten zum Export-CSV. Es kann auch in PowerShell -Skripten implementiert werden, um die Datenübertragung zu automatisieren. Es konvertiert strukturierte Daten in ein einfacheres und benutzerlesbares Format, das viele Anwendungen verwenden können.

Happy Computing!