makaroni
Goto Top

PowerShell Inhalt einer csv Datei löschen

Hallo zusammen,

ich möchter gerne automatisiert über einen Task alle 10 Min eine CSV Datei via Powershell einlesen und abarbeiten.
Ziel ist es, dass automatisiert Zertifikate ausgestellt werden können. Mitarbeter X fügt also Namen in eine CSV Datei hinzu, die Zertifikate werden ausgestellt und dann möchte ich gerne, dass der Inhalt der CSV Datei, ausser der 1. Zeile gelöscht wird damit nicht beim nächsten Task die gleichen Zertifikate wieder ausstellt werden.
Also sprich die Namen, für die die Zertifikate ausgestellt wurden, müssen aus der csv datei verschwinden.

Das Skript für die Zeritifkatsausstelung habe ich soweit fertig.
Hat jemand eine Idee wie ich das umsetzen kann?

Vielen Dank für Eure Hilfe.

LG makaroni

Content-ID: 339306

Url: https://administrator.de/contentid/339306

Ausgedruckt am: 22.11.2024 um 12:11 Uhr

em-pie
em-pie 30.05.2017 um 16:33:39 Uhr
Goto Top
Moin,

du könntest nach der VErarbeitung zunächst allen Content löschen:
https://technet.microsoft.com/de-de/library/ee156808.aspx

und entweder:
  • zuvor die erste Zeile (nochmal) auslesen und nach dem obigen löschen wieder hineinschreiben
  • oder im Powershell-Quellcode die Zeile "fest verdrahten" und dann in die leere Datei hineinschreiben...

https://www.tutorials.de/threads/powershell-zeilen-in-datei-schreiben-an ...

Gruß
em-pie
colinardo
Lösung colinardo 30.05.2017 aktualisiert um 16:45:50 Uhr
Goto Top
(gc 'c:\datei.csv' -TotalCount 1) | sc 'c:\datei.csv'  
Obwohl ich hier eher zu einer Datenbank als Grundlage tendieren würde oder zumindest eine Spalten in der CSV vorsehen würde die kennzeichnet das das Cert erstellt wurde, denn wenn jemand zum selben Zeitpunkt die CSV neu schreibt wenn du löschst kommt das sicher nicht gut face-wink. Also bspw, eine Spalte mit 'Erstellt' erstellen und dann das Flag 1 setzen. Beim Laden der CSV dann nach Erstellt != 1 filtern. Und beim zurückschreiben dann per where object die mit 1 rausfiltern und den Rest zurückschreiben

Grüße Uwe
AnkhMorpork
AnkhMorpork 31.05.2017 um 12:53:37 Uhr
Goto Top
Die Überschrift finde ich ein wenig irreführend. Es soll ja nicht der gesamte Inhalt (das wäre dann clear-content) gelöscht werden, sondern alles bis auf die erste Zeile.
Vielleicht passt du das noch an, damit es klarer wird. Bei der Suche macht sich das dann auch besser.


Gruß

Ankh
colinardo
colinardo 23.07.2017 um 12:41:29 Uhr
Goto Top
Wenns das dann war, den Beitrag bitte noch auf gelöst setzen, und Lösungen markieren. Merci.